CodeGym /Java блог /Случаен /Преобразуване на масив в ArrayList в Java
John Squirrels
Ниво
San Francisco

Преобразуване на масив в ArrayList в Java

Публикувано в групата
здрасти В днешния урок ще говорим за това How да инициализирате масив в Java и How да конвертирате масив в Arraylist. Масивите са разширение на класа Container в Java и могат да бъдат полезни като начин за временно съхраняване на набор от примитивни типове данни, когато количеството данни е конкретно известно. Но масивите са статични, когато се създават, което означава, че когато създавате такъв, не можете да промените броя на елементите, които съдържа. Трябва да запомните How да инициализирате масив в java; изглежда така:

datatype[] isArray;
Където datatype е всеки примитивен тип данни като int, float, long or дори String. Можете също така да поставите скобите след декларацията така:

datatype isArray[];
И така, How да вземем този статичен масив с определен брой елементи и да го конвертираме в ArrayList? Е, първо, нека да разгледаме Howво е ArrayList.

ArrayList

ArrayList може да има подобно име като Array, но се обработва напълно различно. Това е така, защото ArrayList не разширява класа Container, той разширява класа List. А това означава, че всичко се обработва по различен начин. От една страна, тъй като това е списък, можете да го манипулирате по различен начин. Можете да увеличите or намалите размера на ArrayList, като използвате add(element) , което поставя елемента в края на списъка и увеличава размера с единица, ако е необходимо. Или можете да използвате trimToSize()който премахва всички празни индекси в края и изрязва ArrayList до текущия му размер. Така че можете да видите, че има няколко предимства при използването на ArrayList instead of просто масив. След това ще ви покажем два метода за конвертиране от масив в ArrayList и How да се върнете обратно, ако е необходимо.

Преминаване от Array към ArrayList и ArrayList към Array в Java

И така, да приемем, че сте написали програма, която да поддържа инвентаризация на това колко гайки и болтове има вашата компания за ремонт на котешки дървета. В продължение на години сте имали нужда само от 30 различни вида от тях, така че е било лесно просто да използвате масив, за да следите. Но сега имате нов клиент, който изисква от вас да запасите още 5 вида. Как можете да промените програмата си и да запазите всичките си данни, И да не се налага да правите това отново, когато вземете друг клиент? Това е вярно! ArrayList! И така, How да конвертирате Java Array в ArrayList? Има три метода. Използване на метода .asList() Java масивите имат страхотен инструмент, който можете да видите, когато погледнете API, наречен .asList() . Така че можете просто да напишете в това:

boltInventory.asList(bolts);
Проблемът с този метод е, че той не създава истински ArrayList. Това, което прави, е да създаде списък с фиксиран размер и непроменим. Така че все още не можете да промените размера по динамичен начин. Опитът за добавяне or премахване на елементи ще доведе до изключение. Така че, въпреки че това има своите applications, това не е истинско преобразуване. Но можем да използваме това. Използване на .asList() като аргумент Това е вторият начин за конвертиране на масив в списък в Java. Тъй като методът .asList() създава списък, можем да го използваме, за да предадем препратка към нашия действителен ArrayList. Ето How да инициализирате ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Това ще създаде ArrayList, който има десет празни клетки. Въпреки това () в края може да се използва за предаване на аргумент за попълване на ArrayList. Така че, комбинирайки с метода .asList , имате:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Това предава списъка, създаден от метода .asList() в ArrayList, така че сега можете динамично да го манипулирате според нуждите си. Използване на метода Collections.addAll() Друг начин за конвертиране на масив в ArrayList в Java е използването на този метод. Той предава съдържанието на масива към ArrayList. Общият синтаксис за този метод е:

Collections.addAll(c, T);
Където c е дестинацията, а T е това, което се предава. Така че за нашия пример синтаксисът ще изглежда така:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Това ще прехвърли цялото съдържание на болтовете на масива към новия ArrayList. Преобразуване на ArrayList в масив Може да има време, когато трябва да конвертирате ArrayList в масив в Java. Ако го направите, ArrayList има метод .toArray(a) , където a е дестинацията. Така че за нашия пример синтаксисът ще бъде:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Когато промените списък в масив в Java по този начин, вие създавате дълбоко копие. Тоест всички препратки към масива са различни от препратките към ArrayList. Така че можете да манипулирате данните в масива, без да променяте данните, съхранени в ArrayList. Полезно е да конвертирате java списък в масив, когато трябва да тествате данни.

Заключение

Масивите са много полезни за бърз достъп и бързо манипулиране на по-малки набори от данни, но невъзможността да се промени размерът им означава, че те бързо губят ефективност при дългосрочна употреба. ArrayList ви дава тази гъвкавост и възможност да вмъквате и премахвате възли, ако е необходимо. Научаването How да конвертирате Java Array в списък ще подобри цялостната ефективност на вашите програми и ще подобри времето им за изпълнение.
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION