java arraylist how declare
Този урок обяснява как да декларирате, инициализирате и отпечатате Java ArrayList с примери за кодове. Също така ще научите за 2D Arraylist & Implementation of ArrayList в Java:
Рамката на Java Collections и интерфейсът Списък са обяснени подробно в предишните ни уроци. ArrayList е структура от данни, която е част от Framework Collections и може да се разглежда като подобна на масиви и вектори.
ArrayList може да се възприема като динамичен масив, който ви позволява да добавяте или премахвате елементи от него по всяко време или просто казано, динамично.
=> Погледнете тук ръководството за начинаещи Java.
С други думи, размерът му може да се увеличава или намалява динамично за разлика от масивите, чийто размер остава статичен, след като бъде деклариран.
Какво ще научите:
- Клас ArrayList в Java
- Заключение
Клас ArrayList в Java
Структурата на данните ArrayList в Java е представена от класа ArrayList, който е част от „ java.util ' пакет.
Йерархията за класа ArrayList е показана по-долу.
Както можете да видите, класът ArrayList реализира интерфейса List, който от своя страна се простира от интерфейса Collection.
Общата дефиниция на класа ArrayList е дадена по-долу:
public class ArrayList extends AbstractList implements List,RandomAccess, Cloneable, Serializable
Ето някои от отличителните характеристики на ArrayList:
- Класът ArrayList на Java съхранява елементи, като поддържа реда на вмъкване.
- ArrayList позволява дублирани елементи, съхранявани в него.
- ArrayList не е синхронизиран, основната точка, която отличава ArrayList от класа Vector в Java.
- ArrayList в Java е по-идентичен с Vectors в C ++.
- ArrayList в Java също използва индекси като масиви и поддържа произволен достъп.
- Операциите, които манипулират елементи в ArrayList, са бавни, тъй като трябва да се извърши много преместване на елементи, ако някой елемент трябва да бъде премахнат от ArrayList.
- Класът ArrayList не може да съдържа примитивни типове, а само обекти. В този случай обикновено го наричаме „ArrayList на обектите“. Така че, ако искате да съхранявате цяло число елементи, тогава трябва да използвате обекта Integer от класа на обвивката, а не примитивен тип int.
Създайте и декларирайте ArrayList
За да използвате класа ArrayList във вашата програма, трябва първо да го включите във вашата програма, използвайки директивата ‘import’, както е показано по-долу:
import java.util.ArrayList;
ИЛИ
import java.util.*; //this will include all classes from java.util package
След като импортирате класа ArrayList във вашата програма, можете да създадете обект ArrayList.
Общият синтаксис за създаване на ArrayList е:
ArrayList arrayList = new ArrayList ();
Освен горния израз, който използва конструктор по подразбиране, класът ArrayList предоставя и други претоварени конструктори, които можете да използвате за създаване на ArrayList.
Методи на конструктора
Класът ArrayList в Java предоставя следните методи на конструктор за създаване на ArrayList.
Метод # 1: ArrayList ()
Този метод използва конструктора по подразбиране на класа ArrayList и се използва за създаване на празен ArrayList.
Общият синтаксис на този метод е:
ArrayList list_name = new ArrayList();
Например, можете да създадете общ ArrayList от тип String, като използвате следния израз.
ArrayList arraylist = new ArrayList();
Това ще създаде празен ArrayList с име „arraylist“ от тип String.
Метод # 2: ArrayList (int capacity)
Този претоварен конструктор може да се използва за създаване на ArrayList с посочения размер или капацитет, предоставени като аргумент на конструктора.
Общият синтаксис за този метод е:
ArrayList list_name = new ArrayList(int capacity);
Пример:
ArrayList arraylist = new ArrayList(10);
Горното изявление създава празен ArrayList, наречен ‘arraylist’ от тип Integer с капацитет 10.
Метод # 3: ArrayList (Колекция c)
Третият претоварен конструктор за класа ArrayList приема като аргумент вече съществуваща колекция и създава ArrayList с елементите от посочената колекция c като първоначални елементи.
Общият синтаксис за инициализацията на ArrayList с помощта на този конструктор е:
ArrayList list_name = new ArrayList (Collection c)
Например, ако intList е съществуваща колекция с елементи {10,20,30,40,50}, тогава следващото изявление ще създаде списък ‘arraylist’ със съдържанието на intList като негови начални елементи.
ArrayList ArrayList = new ArrayList(intList);
Класът ArrayList също поддържа различни методи, които могат да се използват за манипулиране на съдържанието на списъка. Ще обсъдим подробно тези методи в нашия предстоящ урок „Методи ArrayList в Java“.
Инициализирайте ArrayList в Java
След като ArrayList е създаден, има множество начини за инициализиране на ArrayList със стойности. В този раздел ще обсъдим тези начини.
# 1) Използване на Arrays.asList
Тук можете да предадете масив, преобразуван в List, използвайки метода asList на клас Arrays, за да инициализирате ArrayList.
Общ синтаксис:
ArrayList arrayListName = new ArrayList( Arrays.asList (Object o1, Object o2, …, Object on));
Пример:
import java.util.*; public class Main { public static void main(String args[]) { //create and initialize ArrayList object myList with Arrays.asList method ArrayList myList = new ArrayList( Arrays.asList('One', 'Two', 'Three')); //print the ArrayList System.out.println('List contents:'+myList); } }
Изход:
# 2) Използване на анонимен метод от вътрешния клас
Тук използваме анонимния вътрешен клас, за да инициализираме ArrayList към стойности.
Общият синтаксис за използване на анонимен вътрешен клас за инициализация на ArrayList е както следва:
ArrayListarraylistName = new ArrayList(){{ add(Object o1); add (Object o2);… add (Object on);}};
Пример:
import java.util.*; public class Main { public static void main(String args[]) { //create and initialize ArrayList with anonymous inner class calls ArrayList colors = new ArrayList(){{ add('Red'); add('Blue'); add('Purple'); }}; //print the ArrayList System.out.println('Content of ArrayList:'+colors); } }
Изход:
# 3) Използване на метод за добавяне
Това е често срещаният метод за добавяне на елементи към всяка колекция.
Общият синтаксис за използване на метод add за добавяне на елементи към ArrayList е:
ArrayListArraylistName = new ArrayList(); ArraylistName.add(value1); ArraylistName.add(value2); ArraylistName.add(value3);
Пример за програмиране:
import java.util.*; public class Main { public static void main(String args[]) { //create ArrayList ArrayList colors = new ArrayList(); //add elements to the ArrayList using add method colors.add('Red'); colors.add('Green'); colors.add('Blue'); colors.add('Orange'); //print the ArrayList System.out.println('Content of ArrayList:'+colors); }
Изход:
# 4) Използване на метод Collection.nCopies
Този метод се използва за инициализиране на ArrayList със същите стойности. Предоставяме броя на елементите, които трябва да се инициализират, и началната стойност на метода.
Общият синтаксис на инициализацията е:
ArrayList arrayListName = new ArrayList(Collections.nCopies(count, element));
Примерът по-долу демонстрира инициализация на масив с помощта на метода Collections.nCopies.
import java.util.*; public class Main { public static void main(String args[]) { //create ArrayList with 10 elements //initialized to value 10 using Collections.nCopies ArrayList intList = new ArrayList(Collections.nCopies(10,10)); //print the ArrayList System.out.println('Content of ArrayList:'+intList); } }
Изход:
Итерация чрез ArrayList
Имаме следните начини да преминем през или да преминем през ArrayList:
- Използване на цикъл for
- Чрез всеки цикъл (подобрен цикъл).
- Използване на интерфейса Iterator.
- Чрез интерфейса ListIterator.
- Чрез метода forEachRemaining ().
Всъщност тези методи се използват за итерация през колекции като цяло. Ще видим примери за всеки от методите по отношение на ArrayList в този урок.
# 1) Използване на цикъл for
Цикъл, базиран на индекс, може да се използва за обхождане на ArrayList и отпечатване на неговите елементи.
Следва пример за преминаване и отпечатване на ArrayList с помощта на цикъл for.
import java.util.*; public class Main { public static void main(String[] args) { //create a list List intList = new ArrayList(); intList.add(10); intList.add(20); intList.add(30); intList.add(40); intList.add(50); //create & initialize a new ArrayList with previous list ArrayList arraylist = new ArrayList(intList); System.out.println('Contents of ArrayList using for-loop:'); //use for loop to traverse through its elements and print it for(int i=0;i Изход:
Това е най-простият и лесен начин за обхождане и отпечатване на елементите на ArrayList и работи по същия начин и в случай на други колекции.
# 2) От за всеки цикъл (подобрен за цикъл)
Можете също да прекосите ArrayList, като използвате за всеки цикъл или подобрения цикъл for. Преди Java 8 той не включваше ламбда изрази. Но от Java 8 нататък можете също да включите ламбда изрази в цикъла за всеки.
Програмата по-долу демонстрира обхождането и отпечатването на ArrayList, използвайки за всеки цикъл и ламбда израз.
import java.util.*; public class Main { public static void main(String[] args) { //create a list List intList = new ArrayList(); intList.add(10); intList.add(20); intList.add(30); intList.add(40); intList.add(50); //create & initialize a new ArrayList with previous list ArrayList arraylist = new ArrayList(intList); System.out.println('Contents of ArrayList using for-each loop:'); //use for-each loop to traverse through its elements and print it intList.forEach(val ->{ System.out.print(val + ' '); }); } }
Изход:
# 3) Използване на интерфейс Iterator
Видяхме подробно интерфейса на Iterator в предишните ни теми. Интерфейсът на итератор може да се използва за итерация през ArrayList и отпечатване на неговите стойности.
Следващата програма показва това.
import java.util.*; public class Main { public static void main(String[] args) { //create a list List intList = new ArrayList(); intList.add(5); intList.add(10); intList.add(15); intList.add(20); intList.add(25); //create & initialize a new ArrayList with previous list ArrayList arraylist = new ArrayList(intList); System.out.println('Contents of ArrayList using Iterator interface:'); //Traverse through the ArrayList using iterator Iterator iter=arraylist.iterator(); while(iter.hasNext()){ System.out.print(iter.next() + ' '); } } }
Изход:
# 4) По интерфейс ListIterator
Можете също да прекосите ArrayList, като използвате ListIterator. ListIterator може да се използва за пресичане на ArrayList в посока напред, както и назад.
Нека приложим Java програма, която демонстрира пример за използване на ListIterator.
import java.util.*; class Main{ public static void main(String args[]){ //create a list and initiliaze it List colors_list=new ArrayList();//Creating arraylist colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Cyan'); colors_list.add('Magenta'); colors_list.add('Yellow'); System.out.println('The contents of the list using ListIterator:'); //Traverse the list using ListIterator ListIterator color_iter=colors_list.listIterator(colors_list.size()); while(color_iter.hasPrevious()) { String str=color_iter.previous(); System.out.print(str + ' '); } } }
Изход:
Както можете да видите от изхода, в горната програма ArrayList се премества в обратна посока, използвайки методите hasPrevious () и previous () на ListIterator.
# 5) Чрез метода forEachRemaining ()
Това е един от методите за преминаване през ArrayList и е достъпен от Java 8.
Следващата програма демонстрира метода forEachRemaining () за преминаване през ArrayList.
import java.util.*; class Main{ public static void main(String args[]){ //create a list and initiliaze it List colors_list=new ArrayList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Cyan'); colors_list.add('Magenta'); colors_list.add('Yellow'); System.out.println('The contents of the list using forEachRemaining() method:'); //Traverse the list using forEachRemaining () method Iterator itr=colors_list.iterator(); itr.forEachRemaining(val-> //lambda expression { System.out.print(val + ' '); }); } }
Изход:
най-добрият безплатен видео конвертор за Windows 7
Използваме метода forEachRemaining () заедно с Iterator. Той е подобен на всеки и ние използваме ламбда израз в този метод.
Пример за ArrayList Java
В този раздел ще видим изпълнението на ArrayList в Java. Като пример ще приложим пълен пример от създаване, инициализиране и използване на Java ArrayList за извършване на различни манипулации.
import java.util.ArrayList; class Main { public static void main(String[] args) { //Creating a generic ArrayList ArrayList newList = new ArrayList(); //Size of arrayList System.out.println('Original size of ArrayList at creation: ' + newList.size()); //add elements to it newList.add('IND'); newList.add('USA'); newList.add('AUS'); newList.add('UK'); //print the size after adding elements System.out.println('ArrayList size after adding elements: ' + newList.size()); //Print ArrayList contents System.out.println('Contents of the ArrayList: ' + newList); //Remove an element from the list newList.remove('USA'); System.out.println('ArrayList contents after removing element(USA): ' + newList); //Remove another element by index newList.remove(2); System.out.println('ArrayList contents after removing element at index 2: ' + newList); //print new size System.out.println('Size of arrayList: ' + newList.size()); //print list contents System.out.println('Final ArrayList Contents: ' + newList); } }
Изход:
Двуизмерен ArrayList в Java
Знаем, че ArrayList няма размери като Arrays. Но можем да имаме вложени ArrayLists, които също се наричат „2D ArrayLists“ или „ArrayList of ArrayLists“.
Най-простата идея зад тези вложени ArrayLists е, че при даден ArrayList всеки елемент от този ArrayList е друг ArrayList.
Нека разберем това, като използваме следната програма.
import java.util.*; public class Main { public static void main(String[] args) { int num = 3; // declare an arrayList of ArrayLists or 2D ArrayList ArrayList intList = new ArrayList (num); // Create individual elements or ArrayLists and add them to intList as elements ArrayList list_elem1 = new ArrayList(); list_elem1.add(10); intList.add(list_elem1); ArrayList list_elem2 = new ArrayList(); list_elem2.add(20); list_elem2.add(30); intList.add(list_elem2); ArrayList list_elem3 = new (); list_elem3.add(40); list_elem3.add(50); list_elem3.add(60); intList.add(list_elem3); System.out.println('Contents of 2D ArrayList(Nested ArrayList):'); //print the 2D ArrayList or nested ArrayList for (int i = 0; i Изход:
Горната програма показва 2D ArrayList. Тук първо декларираме ArrayList на ArrayLists. След това дефинираме отделни ArrayLists, които ще служат като отделни елементи на вложен ArrayList, когато добавяме всеки от тези ArrayLists към Nested ArrayList.
За достъп до всеки елемент от ArrayList трябва да извикаме метода get два пъти. Първо за достъп до реда на Nested ArrayList и след това за достъп до индивидуалното пресичане на ред и колона.
Имайте предвид, че можете да увеличите вложените нива на ArrayList, за да дефинирате многоизмерни ArrayLists. Например, 3D ArrayList ще има 2D ArrayLists като свои елементи и така нататък.
често задавани въпроси
В # 1) Какво представлява ArrayList в Java?
Отговор: ArrayList в Java е динамичен масив. Той може да се преоразмерява по природа, т.е. увеличава размера си, когато се добавят нови елементи и се свива, когато елементите се изтриват.
В # 2) Каква е разликата между Array и ArrayList?
Отговор: Масивът е в статична структура и размерът му не може да се променя, след като бъде деклариран. ArrayList е динамичен масив и променя размера си при добавяне или премахване на елементи.
Масивът е основна структура в Java, докато ArrayList е част от Collection Framework в Java. Друга разлика е, че докато Array използва индекс ([]) за достъп до елементи, ArrayList използва методи за достъп до своите елементи.
В # 3) Списък ли е ArrayList?
Отговор: ArrayList е подтип на списъка. ArrayList е клас, докато List е интерфейс.
В # 4) Колекция ли е ArrayList?
Отговор: Не. ArrayList е изпълнение на Collection, което е интерфейс.
В # 5) Как ArrayList увеличава размера си?
Отговор: Вътрешно ArrayList се изпълнява като Array. ArrayList има параметър за размер. Когато елементите се добавят към ArrayList и се достигне стойност на размера, ArrayList вътрешно добавя друг масив, за да побере нови елементи.
Заключение
Това беше урокът по основите на класа ArrayList в Java. Видяхме създаването и инициализирането на класа ArrayList заедно с подробно изпълнение на ArrayList за програмиране.
Също така обсъдихме 2D и многоизмерни ArrayLists. Класът ArrayList поддържа различните методи, които можем да използваме за манипулиране на елементите. В предстоящите ни уроци ще разгледаме тези методи.
=> Прочетете серията Easy Training Training.
Препоръчително четене
- Java Array - Декларирайте, създайте и инициализирайте масив в Java
- Java Array - Как да отпечатвате елементи от масив в Java?
- Разполагане на Java: Създаване и изпълнение на Java JAR файл
- Списък на Java - Как да създадете, инициализирате и използвате списък в Java
- Java виртуална машина: Как JVM помага при стартирането на Java приложение
- Масив от обекти в Java: Как да създадете, инициализирате и използвате
- Модификатори на достъп в Java - Урок с примери
- Урок за отражение на Java с примери