java arraylist how declare
W tym samouczku wyjaśniono, jak zadeklarować, zainicjować i wydrukować listę Java ArrayList z przykładami kodu. Dowiesz się również o 2D Arraylist i implementacji ArrayList w Javie:
Java Collections Framework i interfejs List zostały szczegółowo wyjaśnione w naszych poprzednich samouczkach. ArrayList to struktura danych, która jest częścią Collection Framework i może być postrzegana jako podobna do tablic i wektorów.
ArrayList może być postrzegane jako dynamiczna tablica, która pozwala dodawać lub usuwać z niej elementy w dowolnym momencie lub po prostu dynamicznie.
=> Zapoznaj się z podręcznikiem Java dla początkujących tutaj.
Innymi słowy, jego rozmiar może dynamicznie zwiększać się lub zmniejszać w przeciwieństwie do tablic, których rozmiar po zadeklarowaniu pozostaje statyczny.
Czego się nauczysz:
- Klasa ArrayList w Javie
- Wniosek
Klasa ArrayList w Javie
Struktura danych ArrayList w Javie jest reprezentowana przez klasę ArrayList, która jest częścią „ java.util ”Pakiet.
Poniżej przedstawiono hierarchię klasy ArrayList.
Jak widać, klasa ArrayList implementuje interfejs List, który z kolei pochodzi z interfejsu Collection.
Ogólną definicję klasy ArrayList podano poniżej:
public class ArrayList extends AbstractList implements List,RandomAccess, Cloneable, Serializable
Oto niektóre wyróżniające cechy ArrayList:
- Klasa ArrayList języka Java przechowuje elementy, zachowując kolejność wstawiania.
- ArrayList umożliwia przechowywanie w niej zduplikowanych elementów.
- ArrayList nie jest zsynchronizowana, główny punkt, który odróżnia ArrayList od klasy Vector w Javie.
- ArrayList w Javie jest bardziej identyczny z wektorami w C ++.
- ArrayList w Javie również wykorzystuje indeksy, takie jak tablice, i obsługuje dostęp losowy.
- Operacje manipulujące elementami w ArrayList są powolne, ponieważ trzeba wykonać wiele przesuwania elementów, jeśli jakikolwiek element ma zostać usunięty z ArrayList.
- Klasa ArrayList nie może zawierać typów pierwotnych, ale tylko obiekty. W tym przypadku zwykle nazywamy to „ArrayList of objects”. Więc jeśli chcesz przechowywać elementy typu integer, musisz użyć obiektu Integer klasy opakowania, a nie typu pierwotnego int.
Utwórz i zadeklaruj ArrayList
Aby użyć klasy ArrayList w swoim programie, musisz najpierw dołączyć ją do swojego programu za pomocą dyrektywy „import”, jak pokazano poniżej:
import java.util.ArrayList;
LUB
import java.util.*; //this will include all classes from java.util package
Po zaimportowaniu klasy ArrayList do programu można utworzyć obiekt ArrayList.
Ogólna składnia tworzenia ArrayList to:
ArrayList arrayList = new ArrayList ();
Oprócz powyższej instrukcji, która używa domyślnego konstruktora, klasa ArrayList udostępnia również inne przeciążone konstruktory, których można użyć do utworzenia ArrayList.
Metody konstruktora
Klasa ArrayList w Javie udostępnia następujące metody konstruktora do tworzenia ArrayList.
Metoda nr 1: ArrayList ()
Ta metoda używa domyślnego konstruktora klasy ArrayList i służy do tworzenia pustej ArrayList.
Ogólna składnia tej metody to:
ArrayList list_name = new ArrayList();
Na przykład, możesz utworzyć ogólną ArrayList typu String za pomocą poniższej instrukcji.
ArrayList arraylist = new ArrayList();
Spowoduje to utworzenie pustej listy ArrayList o nazwie „arraylist” typu String.
Metoda nr 2: ArrayList (pojemność int)
Ten przeciążony konstruktor może służyć do tworzenia ArrayList o określonym rozmiarze lub pojemności podanej jako argument dla konstruktora.
Ogólna składnia tej metody to:
ArrayList list_name = new ArrayList(int capacity);
Przykład:
ArrayList arraylist = new ArrayList(10);
Powyższa instrukcja tworzy pustą ArrayList o nazwie „arraylist” typu Integer z pojemnością 10.
Metoda nr 3: ArrayList (kolekcja c)
Trzeci przeciążony konstruktor dla klasy ArrayList przyjmuje już istniejącą kolekcję jako argument i tworzy ArrayList z elementami z określonej kolekcji c jako elementami początkowymi.
Ogólna składnia inicjalizacji ArrayList przy użyciu tego konstruktora jest następująca:
ArrayList list_name = new ArrayList (Collection c)
Na przykład, jeśli intList jest istniejącą kolekcją z elementami {10,20,30,40,50}, to poniższa instrukcja utworzy listę „arraylist” z zawartością intList jako elementami początkowymi.
ArrayList ArrayList = new ArrayList(intList);
Klasa ArrayList obsługuje również różne metody, których można używać do manipulowania zawartością listy. Omówimy te metody szczegółowo w naszym nadchodzącym samouczku „Metody ArrayList w Javie”.
Zainicjuj ArrayList w Javie
Po utworzeniu ArrayList istnieje wiele sposobów na zainicjowanie ArrayList wartościami. W tej sekcji omówimy te sposoby.
# 1) Korzystanie z Arrays.asList
W tym miejscu można przekazać Array przekonwertowaną na List przy użyciu metody asList klasy Arrays w celu zainicjowania ArrayList.
Ogólna składnia:
ArrayList arrayListName = new ArrayList( Arrays.asList (Object o1, Object o2, …, Object on));
Przykład:
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); } }
Wynik:
# 2) Używanie metody anonimowej klasy wewnętrznej
Tutaj używamy anonimowej klasy wewnętrznej do inicjalizacji ArrayList do wartości.
Ogólna składnia użycia anonimowej klasy wewnętrznej do inicjalizacji ArrayList jest następująca:
ArrayListarraylistName = new ArrayList(){{ add(Object o1); add (Object o2);… add (Object on);}};
Przykład:
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); } }
Wynik:
# 3) Korzystanie z metody dodawania
Jest to powszechna metoda dodawania elementów do dowolnej kolekcji.
Ogólna składnia użycia metody add w celu dodania elementów do ArrayList to:
ArrayListArraylistName = new ArrayList(); ArraylistName.add(value1); ArraylistName.add(value2); ArraylistName.add(value3);
Przykład programowania:
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); }
Wynik:
# 4) Korzystanie z metody Collection.nCopies
Ta metoda służy do inicjowania ArrayList z tymi samymi wartościami. Podajemy liczbę elementów do zainicjowania oraz wartość początkową metody.
Ogólna składnia inicjalizacji to:
ArrayList arrayListName = new ArrayList(Collections.nCopies(count, element));
Poniższy przykład demonstruje inicjalizację tablicy przy użyciu metody 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); } }
Wynik:
Iteracja przez ArrayList
Mamy następujące sposoby przechodzenia przez ArrayList lub pętli przez nią:
- Korzystanie z pętli for
- Według pętli for-each (ulepszona pętla for).
- Korzystanie z interfejsu Iterator.
- Według interfejsu ListIterator.
- Metoda forEachRemaining ().
W rzeczywistości te metody są używane ogólnie do iteracji kolekcji. W tym samouczku zobaczymy przykłady każdej z metod w odniesieniu do ArrayList.
# 1) Korzystanie z pętli for
Oparta na indeksach pętla for może służyć do przechodzenia przez ArrayList i drukowania jej elementów.
Poniżej znajduje się przykład przechodzenia i drukowania ArrayList przy użyciu pętli 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 Wynik:

Jest to najprostszy i najłatwiejszy sposób przechodzenia i drukowania elementów ArrayList i działa tak samo w przypadku innych kolekcji.
# 2) Według pętli for-each (ulepszona pętla for)
Możesz także przechodzić przez ArrayList, używając pętli for-each lub rozszerzonej pętli for. Przed wersją Java 8 nie zawierał wyrażeń lambda. Jednak począwszy od języka Java 8 można również uwzględniać wyrażenia Lambda w pętli for-each.
Poniższy program demonstruje przechodzenie i drukowanie ArrayList przy użyciu dla każdej pętli i wyrażenia lambda.
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 + ' '); }); } }
Wynik:

# 3) Korzystanie z interfejsu iteratora
W poprzednich tematach szczegółowo omówiliśmy interfejs Iteratora. Interfejs iteratora może być używany do iteracji przez ArrayList i drukowania jej wartości.
Pokazuje to poniższy program.
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() + ' '); } } }
Wynik:

# 4) Według interfejsu ListIterator
Możesz także przejść przez ArrayList za pomocą ListIterator. ListIterator może służyć do przechodzenia przez ArrayList zarówno w kierunku do przodu, jak i do tyłu.
Zaimplementujmy program w języku Java, który demonstruje przykład użycia 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 + ' '); } } }
Wynik:

Jak widać z danych wyjściowych, w powyższym programie ArrayList jest przesuwany w kierunku wstecznym za pomocą metod hasPrevious () i previous () ListIterator.
# 5) Według metody forEachRemaining ()
Jest to jedna z metod przechodzenia przez ArrayList i jest dostępna od wersji Java 8.
Poniższy program demonstruje metodę forEachRemaining () do przechodzenia przez 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 + ' '); }); } }
Wynik:

html5 pytania i odpowiedzi do wywiadu pdf
Używamy metody forEachRemaining () wraz z Iteratorem. Jest podobny do każdego i używamy wyrażenia lambda wewnątrz tej metody.
Przykład języka ArrayList w języku Java
W tej sekcji zobaczymy implementację ArrayList w Javie. Jako przykład zaimplementujemy kompletny przykład z tworzenia, inicjowania i używania Java ArrayList do wykonywania różnych manipulacji.
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); } }
Wynik:

Dwuwymiarowa ArrayList w Javie
Wiemy, że ArrayList nie ma wymiarów takich jak Arrays. Ale możemy mieć zagnieżdżone ArrayLists, które są również nazywane „2D ArrayLists” lub „ArrayList of ArrayLists”.
Prosta idea stojąca za tymi zagnieżdżonymi ArrayList polega na tym, że mając ArrayList, każdy element tej ArrayList jest inną ArrayList.
Zrozummy to za pomocą następującego programu.
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 Wynik:

Powyższy program pokazuje 2D ArrayList. Tutaj najpierw deklarujemy ArrayList of ArrayLists. Następnie definiujemy poszczególne ArrayLists, które będą służyć jako indywidualne elementy zagnieżdżonej ArrayList, gdy dodamy każdą z tych ArrayLists do Nested ArrayList.
Aby uzyskać dostęp do każdego elementu ArrayList, musimy dwukrotnie wywołać metodę get. Najpierw, aby uzyskać dostęp do wiersza zagnieżdżonej tablicy ArrayList, a następnie, aby uzyskać dostęp do pojedynczego przecięcia wiersza i kolumny.
Zauważ, że możesz zwiększyć zagnieżdżone poziomy ArrayList, aby zdefiniować wielowymiarowe ArrayLists. Na przykład, 3D ArrayList będzie zawierało 2D ArrayLists jako elementy i tak dalej.
Często Zadawane Pytania
Pytanie 1) Co to jest ArrayList w Javie?
Odpowiedź: ArrayList w Javie to tablica dynamiczna. Ma on zmienną wielkość, tj. Zwiększa się, gdy dodawane są nowe elementy, i kurczy się, gdy elementy są usuwane.
Pytanie 2) Jaka jest różnica między Array a ArrayList?
Odpowiedź: Tablica ma strukturę statyczną i nie można zmienić jej rozmiaru po zadeklarowaniu. ArrayList jest tablicą dynamiczną i zmienia swój rozmiar, gdy elementy są dodawane lub usuwane.
Tablica jest podstawową strukturą w Javie, podczas gdy ArrayList jest częścią struktury kolekcji w Javie. Inną różnicą jest to, że podczas gdy Array używa indeksu dolnego ([]), aby uzyskać dostęp do elementów, ArrayList używa metod, aby uzyskać dostęp do swoich elementów.
P # 3) Czy ArrayList jest listą?
Odpowiedź: ArrayList jest podtypem listy. ArrayList jest klasą, a List jest interfejsem.
Pytanie 4) Czy ArrayList jest kolekcją?
Odpowiedź: Nie. ArrayList jest implementacją Collection, która jest interfejsem.
P # 5) W jaki sposób ArrayList zwiększa swój rozmiar?
Odpowiedź: Wewnętrznie ArrayList jest implementowana jako Array. ArrayList ma parametr rozmiaru. Po dodaniu elementów do ArrayList i osiągnięciu wartości rozmiaru ArrayList wewnętrznie dodaje kolejną tablicę, aby pomieścić nowe elementy.
Wniosek
To był samouczek dotyczący podstaw klasy ArrayList w Javie. Widzieliśmy tworzenie i inicjalizację klasy ArrayList wraz ze szczegółową implementacją programowania ArrayList.
Omówiliśmy również 2D i wielowymiarowe ArrayLists. Klasa ArrayList obsługuje różne metody, których możemy używać do manipulowania elementami. W naszych nadchodzących samouczkach zajmiemy się tymi metodami.
=> Przeczytaj serię szkoleń Easy Java.
rekomendowane lektury
- Java Array - Deklaruj, twórz i inicjuj tablicę w Javie
- Tablica Java - jak wydrukować elementy tablicy w języku Java?
- Wdrażanie Java: tworzenie i wykonywanie pliku Java JAR
- Lista Java - jak tworzyć, inicjować i używać listy w Javie
- Wirtualna maszyna Java: jak JVM pomaga w uruchamianiu aplikacji Java
- Tablica obiektów w Javie: jak tworzyć, inicjować i używać
- Modyfikatory dostępu w Javie - samouczek z przykładami
- Samouczek dotyczący refleksji w języku Java z przykładami