ArrayList je del okvir zbiranja in je prisoten v paketu java.util. Zagotavlja nam dinamična polja v Javi. Čeprav je morda počasnejši od standardnih nizov, je lahko koristen v programih, kjer je potrebnih veliko manipulacij z nizom. Ta razred najdemo v java.util paket.
Z uvedbo in nadgradnjami v različicah Jave so na voljo novejše metode, kot da iz Jave8 res vidimo zaznavne lambda izraze in koncepti tokov pred tem niso bili na voljo, saj so bili predstavljeni v Javi različici8.
Metode:
java datum v niz
- Uporaba for zank
- Uporaba medtem
- Uporaba zanke za vsako
- Uporaba Iteratorja
- Uporaba lambda izrazov (samo po Javi 8)
- Uporaba vmesnika Enumeration
Razpravljajmo o teh metodah, od katerih lahko takoj zaznamo, da so začetne tri metode preprosto naivni pristopi, nadaljnje metode pa prinašajo nekaj optimizacije s seboj. Ne pozabite, da medtem ko je prečkanje elementov manjše, običajno ponavljamo z naivnim pristopom, sicer pa uporabimo optimalne pristope, če je velikost elementov, ki jih je treba vstaviti, velika. Na hitro zaključimo vsakega od zgornjih pristopov.
1. način: Uporaba zanke for
Java
// Java program to iterate over an ArrayList // Using for loop // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Creating and initializing the ArrayList // Declaring object of integer type List števila = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Ponavljanje z uporabo zanke for for (int i = 0; i< numbers.size(); i++) // Printing and display the elements in ArrayList System.out.print(numbers.get(i) + ' '); } }>
Izhod
1 2 3 4 5 6 7 8>
2. način: Uporaba zanke while
Java // Java Program to Illustrate ArrayList // Using While Loop // Importing required classes import java.util.ArrayList ; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Creating and initializing the ArrayList // Declaring object of integer type ArrayList al = nov ArrayList (); // Dodajanje elementov v ArrayList // z uporabo metode add() al.add(3); al.add(1); al.add(7); al.add(20); al.add(5); // 1. korak: Nastavitev in inicializacija spremenljivke // v skladu s sintakso zanke while // Začetna deklaracija in nastavitev int val = 0; // 2. korak: Pogoj // Dokler naša spremenljivka števca ni manjša od velikosti // ArrayList while (al.size()> val) { // Tiskanje elementa, ki drži zgoraj // pogoj true System.out.println(al .get(val)); // Korak 3: Prekinitev pogoja z inkrementiranjem // našega števca v vsaki ponovitvi val++ ; } } }>
Izhod
3 1 7 20 5>
3. način: Uporaba za vsako zanko
Java // Java Program to Iterate over Arraylist // using for Each loop // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Declaring and initializing ArrayList List števila = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Za vsako zanko za ponavljanje ArrayList for (Integer i : numbers) // Tiskanje elementov ArrayList System.out.print(i + ' '); } }>
Izhod
1 2 3 4 5 6 7 8>
4. način: Uporaba Iteratorja
Java
// Java program to iterate over an ArrayList // Using Iterator // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Declaring and initializing ArrayList List števila = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Ponavljanje ArrayList z uporabo Iterator Iterator it = numbers.iterator(); // Velja za resnično, dokler na seznamu // ne ostane en sam element while (it.hasNext()) // Natisni elemente seznama ArrayList System.out.print(it.next() + ' '); } }>
Izhod
1 2 3 4 5 6 7 8>
5. način: Uporaba lambda izrazov
Java // Java program to iterate over an arraylist // using Iterator in Java8 with Lambda Expression // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Declaring and initializing ArrayList // Custom input elements List števila = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Tiskanje števil z uporabo lambda izrazov // je bilo uvedeno pozneje v java8 numbers.forEach(number->System.out.println(number)); } }>
Izhod
1 2 3 4 5 6 7 8>
6. način: Uporaba vmesnika Enumeration
Java // Java Program to Iterate over ArrayList elements // Using Enumeration // Importing required classes import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; // Main class class GFG { // Main driver method public static void main(String[] args) { // Creating an ArrayList ArrayList al = nov ArrayList (); // Dodajanje elementov v ArrayList al.add(34); al.add(12); al.add(34); al.add(23); al.add(54); // Pridobivanje predmeta naštevanja Enumeration e = Zbirke.enumeration(al); // Dokler elementi niso tam, medtem ko (e.hasMoreElements()) // Tiskanje elementov z uporabo metode nextElement() System.out.println(e.nextElement()); } }>
Izhod
34 12 34 23 54>
Zdaj je nadaljnji dodatek k članku, saj smo končali z razpravo o vseh metodah, ki jih je mogoče uporabiti za ponavljanje elementov. Do sedaj smo prečkali le vhodne elemente in nismo videli prečkanja, kaj če se igramo z elementi, tako razmišljamo
Primer
Java // Java program to demonstrate Working of // Iterator.remove() on Arraylist // Importing utility classes import java.util.List; import java.util.ArrayList; import java.util.Iterator; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Creating a List with referenceto ArrayList List al = nov ArrayList (); al.add(10); al.add(20); al.add(30); al.add(1); al.add(2); // Odstranite elemente, manjše od 10 z uporabo // Iterator.remove() Iterator itr = al.iterator(); medtem ko (itr.hasNext()) { int x = (Integer)itr.next(); če (x< 10) itr.remove(); } System.out.println('Modified ArrayList : ' + al); } }>
Izhod
Modified ArrayList : [10, 20, 30]>
Odstranjevanje elementov med prehodom: Pri ponavljanju elementov ni priporočljivo uporabljati ArrayList.remove(). To lahko vodi do ConcurrentModificationException (Nanašati se na to za vzorčni program s to izjemo). Pri ponavljanju elementov je priporočljiva uporaba Iterator.remove() metoda.