java arraylist how declare
Tento výukový program vysvetľuje, ako deklarovať, inicializovať a vytlačiť zoznam Java ArrayList s príkladmi kódu. Dozviete sa tiež o 2D Arraylist a implementácii ArrayList v Jave:
V našom predchádzajúcom návode sme podrobne vysvetlili rámec Java Collections Framework a rozhranie Zoznam. ArrayList je dátová štruktúra, ktorá je súčasťou kolekčného rámca a dá sa na ňu pozerať podobne ako na polia a vektory.
ArrayList možno vnímať ako dynamické pole, ktoré vám umožňuje pridávať alebo odstraňovať prvky z neho kedykoľvek alebo jednoducho povedané dynamicky.
=> Tu si pozrite príručku Java Beginners Guide.
Inými slovami, jeho veľkosť sa môže dynamicky zväčšovať alebo zmenšovať na rozdiel od polí, ktorých veľkosť zostáva po deklarovaní statická.
Čo sa dozviete:
- Trieda ArrayList v Jave
- Záver
Trieda ArrayList v Jave
Dátovú štruktúru ArrayList v Jave predstavuje trieda ArrayList, ktorá je súčasťou „ java.util ”Balíček.
Hierarchia pre triedu ArrayList je uvedená nižšie.
Ako vidíte, trieda ArrayList implementuje rozhranie List, ktoré sa zasa rozširuje od rozhrania Collection.
Všeobecná definícia triedy ArrayList je uvedená nižšie:
public class ArrayList extends AbstractList implements List,RandomAccess, Cloneable, Serializable
Tu sú niektoré z charakteristických vlastností ArrayList:
- Trieda ArrayList Java ukladá prvky udržiavaním poradia vloženia.
- Zoznam ArrayList umožňuje duplikovať v ňom uložené prvky.
- ArrayList nie je synchronizovaný, hlavný bod, ktorý odlišuje ArrayList od triedy Vector v Jave.
- ArrayList v Jave je viac identický s vektormi v C ++.
- Zoznam ArrayList v Jave tiež používa indexy, ako sú polia, a podporuje náhodný prístup.
- Operácie, ktoré manipulujú s prvkami v zozname ArrayList, sú pomalé, pretože je potrebné vykonať veľa posunov prvkov, ak sa má z ArrayList odstrániť akýkoľvek prvok.
- Trieda ArrayList nemôže obsahovať primitívne typy, ale iba objekty. V takom prípade to zvyčajne nazývame ‘ArrayList objektov’. Takže ak chcete uložiť celočíselný typ prvkov, musíte použiť objekt Integer triedy wrapper a nie primitívny typ int.
Vytvorte a vyhláste zoznam polí
Ak chcete vo svojom programe používať triedu ArrayList, musíte ju do svojho programu zahrnúť najskôr pomocou smernice „import“, ako je uvedené nižšie:
import java.util.ArrayList;
ALEBO
import java.util.*; //this will include all classes from java.util package
Po importovaní triedy ArrayList do programu môžete vytvoriť objekt ArrayList.
Všeobecná syntax vytvárania ArrayList je:
ArrayList arrayList = new ArrayList ();
Okrem vyššie uvedeného príkazu, ktorý používa predvolený konštruktor, trieda ArrayList poskytuje aj ďalšie preťažené konštruktory, ktoré môžete použiť na vytvorenie ArrayList.
Konštruktorové metódy
Trieda ArrayList v Jave poskytuje nasledujúce metódy konštruktora na vytvorenie ArrayList.
Metóda 1: ArrayList ()
Táto metóda používa predvolený konštruktor triedy ArrayList a používa sa na vytvorenie prázdneho ArrayList.
Všeobecná syntax tejto metódy je:
ArrayList list_name = new ArrayList();
Napríklad, všeobecný ArrayList typu String môžete vytvoriť pomocou nasledujúceho príkazu.
ArrayList arraylist = new ArrayList();
Takto sa vytvorí prázdny zoznam ArrayList s názvom „arraylist“ typu String.
Metóda 2: ArrayList (kapacita int)
Tento preťažený konštruktor sa dá použiť na vytvorenie ArrayList so zadanou veľkosťou alebo kapacitou poskytnutou ako argument konštruktoru.
Všeobecná syntax pre túto metódu je:
ArrayList list_name = new ArrayList(int capacity);
Príklad:
ArrayList arraylist = new ArrayList(10);
Vyššie uvedené vyhlásenie vytvorí prázdny ArrayList s názvom ‘arraylist‘ typu Integer s kapacitou 10.
Metóda č. 3: ArrayList (kolekcia c)
Tretí preťažený konštruktor pre triedu ArrayList vezme už existujúcu kolekciu ako argument a vytvorí ArrayList s prvkami zo zadanej kolekcie c ako počiatočnými prvkami.
Všeobecná syntax pre inicializáciu ArrayList pomocou tohto konštruktora je:
ArrayList list_name = new ArrayList (Collection c)
Napríklad, ak intList je existujúca kolekcia s prvkami {10,20,30,40,50}, potom nasledujúci príkaz vytvorí zoznam ‘arraylist’ s obsahom intList ako počiatočnými prvkami.
ArrayList ArrayList = new ArrayList(intList);
Trieda ArrayList taktiež podporuje rôzne metódy, ktoré možno použiť na manipuláciu s obsahom zoznamu. Týmto metódam sa budeme podrobne venovať v našom pripravovanom výučbe „Metódy ArrayList v Jave“.
Inicializujte ArrayList v Jave
Po vytvorení ArrayList existuje niekoľko spôsobov, ako inicializovať ArrayList pomocou hodnôt. V tejto časti si rozoberieme tieto spôsoby.
# 1) Používanie Arrays.asList
Tu môžete prejsť pole premenené na zoznam pomocou metódy asList triedy Arra a inicializovať ArrayList.
Všeobecná syntax:
ArrayList arrayListName = new ArrayList( Arrays.asList (Object o1, Object o2, …, Object on));
Príklad:
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); } }
Výkon:
# 2) Použitie metódy anonymnej vnútornej triedy
Tu použijeme anonymnú vnútornú triedu na inicializáciu ArrayList na hodnoty.
Všeobecná syntax pre použitie anonymnej vnútornej triedy na inicializáciu ArrayList je nasledovná:
ArrayListarraylistName = new ArrayList(){{ add(Object o1); add (Object o2);… add (Object on);}};
Príklad:
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); } }
Výkon:
# 3) Použitie metódy pridania
Toto je bežná metóda pridávania prvkov do ľubovoľnej kolekcie.
Všeobecná syntax pre použitie metódy add na pridanie prvkov do ArrayList je:
ArrayListArraylistName = new ArrayList(); ArraylistName.add(value1); ArraylistName.add(value2); ArraylistName.add(value3);
Príklad programovania:
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); }
Výkon:
# 4) Použitie metódy Collection.nCopies
Táto metóda sa používa na inicializáciu ArrayList s rovnakými hodnotami. Metóde poskytujeme počet prvkov, ktoré sa majú inicializovať, a počiatočnú hodnotu.
Všeobecná syntax inicializácie je:
ArrayList arrayListName = new ArrayList(Collections.nCopies(count, element));
Nasledujúci príklad demonštruje inicializáciu poľa pomocou metódy 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); } }
Výkon:
Iterácia cez ArrayList
Máme nasledujúce spôsoby, ako prechádzať alebo prechádzať cez ArrayList:
- Pomocou slučky for
- Pre každú slučku (vylepšená pre slučku).
- Pomocou rozhrania Iterator.
- Rozhraním ListIterator.
- Metódou forEachRemaining ().
Tieto metódy sa v skutočnosti používajú na iteráciu prostredníctvom zbierok všeobecne. V tejto príručke uvidíme príklady každej z metód týkajúcich sa ArrayList.
# 1) Použitie pre slučku
Na prechádzanie po zozname ArrayList a tlač jeho prvkov je možné použiť cyklus for založený na indexe.
Nasleduje príklad na prechádzanie a tlač ArrayList pomocou slučky 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 Výkon:

Toto je najjednoduchší a najjednoduchší spôsob prechádzania a tlače prvkov ArrayList a funguje to rovnako aj v prípade iných zbierok.
# 2) Pre každú slučku (vylepšená pre slučku)
Môžete tiež prechádzať ArrayList pomocou slučky pre každú alebo vylepšenej slučky pre. Pred jazykom Java 8 neobsahoval výrazy lambda. Ale od Javy 8 a ďalej môžete do slučky pre každú zahrnúť aj výrazy Lambda.
Program nižšie demonštruje prechod a tlač súboru ArrayList s použitím pre každú slučku a výraz 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 + ' '); }); } }
Výkon:

# 3) Používanie rozhrania Iterator
Rozhranie Iterátora sme videli podrobne v našich predchádzajúcich témach. Rozhranie Iterator možno použiť na iteráciu ArrayListom a tlač jeho hodnôt.
Nasledujúci program to ukazuje.
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() + ' '); } } }
Výkon:

# 4) Podľa rozhrania ListIterator
Môžete tiež prechádzať ArrayList pomocou ListIterator. ListIterator možno použiť na prechádzanie ArrayListom smerom dopredu aj dozadu.
Poďme implementovať program Java, ktorý demonštruje príklad použitia 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 + ' '); } } }
Výkon:

Ako je zrejmé z výstupu, vo vyššie uvedenom programe sa zoznamom ArrayList prechádza spätným smerom pomocou metód hasPrevious () a previous () nástroja ListIterator.
# 5) Metódou forEachRemaining ()
Toto je jedna z metód prechodu po zozname ArrayList a je k dispozícii od verzie Java 8.
Nasledujúci program demonštruje metódu forEachRemaining () na prechádzanie 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 + ' '); }); } }
Výkon:

bezplatný program na stiahnutie videí z youtube
Spolu s Iterátorom používame metódu forEachRemaining (). Je to podobné ako každý a vo vnútri tejto metódy používame výraz lambda.
ArrayList Java Príklad
V tejto časti uvidíme implementáciu ArrayList v Jave. Ako príklad implementujeme kompletný príklad z vytvárania, inicializácie a používania Java ArrayList na vykonávanie rôznych manipulácií.
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); } }
Výkon:

Dvojrozmerný zoznam ArrayList v Jave
Vieme, že zoznam ArrayList nemá rozmery ako polia. Môžeme však mať vnorené zoznamy ArrayLists, ktoré sa tiež nazývajú „2D ArrayLists“ alebo „ArrayList of ArrayLists“.
Jednoduchá myšlienka týchto vnorených ArrayLists je, že vzhľadom na ArrayList je každý prvok tohto ArrayList iný ArrayList.
Pochopme to pomocou nasledujúceho 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 Výkon:

Vyššie uvedený program zobrazuje 2D ArrayList. Tu najskôr deklarujeme ArrayList zo zoznamov ArrayLists. Potom definujeme jednotlivé ArrayLists, ktoré budú slúžiť ako jednotlivé prvky vnoreného ArrayList, keď pridáme každý z týchto ArrayLists do Nested ArrayList.
Pre prístup ku každému prvku ArrayList musíme dvakrát zavolať metódu get. Najskôr získate prístup k riadku vnoreného zoznamu polí a potom prístup k jednotlivým priesečníkom riadkov a stĺpcov.
Upozorňujeme, že môžete zvýšiť vnorené úrovne poľa ArrayList a definovať tak viacrozmerné zoznamy polí. Napríklad, 3D ArrayList bude mať ako prvky 2D ArrayLists a tak ďalej.
často kladené otázky
Otázka 1) Čo je ArrayList v Jave?
Odpoveď: Zoznam ArrayList v Jave je dynamické pole. Je možné ho zmeniť v prírode, tj. Zväčšiť jeho veľkosť, keď sa pridajú nové prvky, a zmenšiť sa, keď sa prvky odstránia.
Otázka 2) Aký je rozdiel medzi Array a ArrayList?
Odpoveď: Pole je v statickej štruktúre a jeho veľkosť sa po deklarácii nedá zmeniť. ArrayList je dynamické pole a pri pridávaní alebo odstraňovaní prvkov mení svoju veľkosť.
Pole je základnou štruktúrou v Jave, zatiaľ čo ArrayList je súčasťou Collection Framework v Jave. Ďalším rozdielom je, že zatiaľ čo Array používa na prístup k prvkom dolný index (()), ArrayList používa na prístup k svojim prvkom metódy.
Otázka 3) Je ArrayList zoznam?
Odpoveď: ArrayList je podtypom zoznamu. ArrayList je trieda, zatiaľ čo List je rozhranie.
Otázka 4) Je ArrayList zbierka?
Odpoveď: Nie. ArrayList je implementácia kolekcie, ktorá je rozhraním.
Otázka č. 5) Ako zväčšuje ArrayList svoju veľkosť?
Odpoveď: Interne je ArrayList implementovaný ako pole. ArrayList má parameter veľkosti. Keď sú prvky pridané do ArrayList a je dosiahnutá hodnota veľkosti, ArrayList interne pridá ďalšie pole na umiestnenie nových prvkov.
Záver
Toto bol návod na základy triedy ArrayList v Jave. Videli sme vytváranie a inicializáciu triedy ArrayList spolu s podrobnou programovou implementáciou ArrayList.
Diskutovali sme tiež o 2D a multidimenzionálnych zoznamoch polí. Trieda ArrayList podporuje rôzne metódy, ktoré môžeme použiť na manipuláciu s prvkami. V našich pripravovaných návodoch sa budeme venovať týmto metódam.
=> Prečítajte si sériu Easy Java Training Series.
Odporúčané čítanie
- Java Array - Deklarovať, vytvoriť a inicializovať pole v Jave
- Java Array - Ako tlačiť prvky poľa v Jave?
- Nasadenie Java: Vytvorenie a vykonanie súboru Java JAR
- Zoznam Java - Ako vytvoriť, inicializovať a používať zoznam v jazyku Java
- Virtuálny stroj Java: Ako JVM pomáha pri spúšťaní aplikácií Java
- Pole objektov v Jave: Ako vytvárať, inicializovať a používať
- Modifikátory prístupu v Jave - návod s príkladmi
- Výukový program Java Reflection s príkladmi