logo

Ponavljanje nad ArrayLists v Javi

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
  1. Uporaba for zank
  2. Uporaba medtem
  3. Uporaba zanke za vsako
  4. Uporaba Iteratorja
  5. Uporaba lambda izrazov (samo po Javi 8)
  6. 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.