logo

Iterácia cez ArrayLists v Jave

ArrayList je súčasťou zberný rámec a nachádza sa v balíku java.util. Poskytuje nám dynamické polia v jazyku Java. Aj keď môže byť pomalší ako štandardné polia, ale môže byť užitočný v programoch, kde je potrebné veľa manipulácie v poli. Táto trieda sa nachádza v java.util balík.

So zavedením a aktualizáciami vo verziách Java sú k dispozícii novšie metódy, ako keby sme z Java8 videli, že vnímavé lambda výrazy a koncepty prúdov neboli predtým dostupné, pretože boli predstavené vo verzii Java8.



Metódy:

ako previesť char na reťazec java
  1. Používanie slučiek for
  2. Použitie while
  3. Použitie pre každú slučku
  4. Použitie Iterátora
  5. Používanie výrazov Lambda (iba po Java8)
  6. Používanie rozhrania Enumeration

Poďme diskutovať o týchto metódach, z ktorých hneď môžeme vnímať, že východiskové tri metódy sú jednoducho naivné prístupy a ďalšie metódy so sebou nesú určitú optimalizáciu. Pamätajte si, že zatiaľ čo prechádzanie prvkov je menšie, vo všeobecnosti máme tendenciu opakovať naivný prístup, iba ak je veľkosť prvkov, ktoré sa majú vložiť, veľká, potom používame optimálne prístupy. Poďme rýchlo zabaliť každý z vyššie uvedených prístupov.

Metóda 1: Použitie slučky 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 čísla = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // Iterácia pomocou cyklu for for (int i = 0; i< numbers.size(); i++)     // Printing and display the elements in ArrayList   System.out.print(numbers.get(i) + ' ');   } }>

Výkon
1 2 3 4 5 6 7 8>

Metóda 2: Použitie while slučky

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 ();  // Pridanie prvkov do ArrayList // pomocou metódy add() al.add(3);  al.add(1);  al.add(7);  al.add(20);  al.add(5);  // Krok 1: Nastavenie a inicializácia premennej // podľa syntaxe cyklu while // Počiatočné deklarovanie a nastavenie int val = 0;  // Krok 2: Podmienka // Kým bude naša premenná počítadla menšia ako veľkosť // ArrayList while (al.size()> val) { // Vytlačenie prvku, ktorý platí vyššie // podmienka true System.out.println(al .get(val));  // Krok 3: Ukončenie podmienky zvýšením // nášho počítadla v každej iterácii val++ ;  } } }>

Výkon
3 1 7 20 5>

Metóda 3: Použitie pre každú slučku

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 čísla = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // Pre každú slučku na iteráciu ArrayList for (Integer i : čísla) // Tlač prvkov ArrayList System.out.print(i + ' ');  } }>

Výkon
1 2 3 4 5 6 7 8>

Metóda 4: Použitie Iterátora



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 čísla = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // Iterácia ArrayList pomocou Iterator Iterator it = numbers.iterator();  // Platí, kým nezostane jeden prvok // v zozname while (it.hasNext()) // Vytlačí prvky ArrayList System.out.print(it.next() + ' ');  } }>

Výkon
1 2 3 4 5 6 7 8>

Metóda 5: Použitie výrazov lambda

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 čísla = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // Tlač čísel pomocou lambda výrazov // bolo zavedené neskôr v java8 numbers.forEach(number->System.out.println(number));  } }>

Výkon
1 2 3 4 5 6 7 8>

Metóda 6: Používanie rozhrania 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 ();  // Pridanie prvkov do ArrayList al.add(34);  al.add(12);  al.add(34);  al.add(23);  al.add(54);  // Získanie objektu enumerácie Enumerácia e = Collections.enumeration(al);  // Kým prvky budú existovať (e.hasMoreElements()) // Tlač prvkov pomocou metódy nextElement() System.out.println(e.nextElement());  } }>

Výkon
34 12 34 23 54>

Teraz je to ďalší doplnok k článku, pretože sme skončili s diskusiou o všetkých metódach, ktoré možno použiť na iteráciu prvkov. Doteraz sme prechádzali iba cez vstupné prvky a nevideli sme prechod, čo ak sa budeme hrať s prvkami, tak uvažujeme

Príklad

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);  // Odstráňte prvky menšie ako 10 pomocou // Iterator.remove() Iterator itr = al.iterator();  while (itr.hasNext()) { int x = (Integer)itr.next();  ak (x< 10)  itr.remove();  }  System.out.println('Modified ArrayList : '  + al);  } }>

Výkon
Modified ArrayList : [10, 20, 30]>

Odstránenie položiek počas prechodu: Pri iterácii prvkov sa neodporúča používať ArrayList.remove(). To môže viesť k ConcurrentModificationException (Odkazujú na toto pre vzorový program s touto výnimkou). Pri iterácii cez prvky sa odporúča použiť Iterator.remove() metóda.