logo

Iterazione su ArrayList in Java

ArrayList fa parte di quadro di raccolta ed è presente nel pacchetto java.util. Ci fornisce array dinamici in Java. Tuttavia, potrebbe essere più lento degli array standard ma può essere utile nei programmi in cui è necessaria molta manipolazione nell'array. Questa classe si trova in java.util pacchetto.

Con l'introduzione e gli aggiornamenti nelle versioni Java, sono disponibili metodi più recenti, come se vedessimo da Java8 che le espressioni lambda percettive e i concetti di flusso non fossero disponibili prima di essere introdotti nella versione Java 8.



Metodi:

includere la programmazione in c
  1. Utilizzo dei cicli for
  2. Utilizzo mentre
  3. Utilizzando for-each loop
  4. Utilizzo di Iteratore
  5. Utilizzo delle espressioni Lambda (solo dopo Java8)
  6. Utilizzo dell'interfaccia di enumerazione

Parliamo di questi metodi di cui possiamo subito percepire che i tre metodi iniziali sono semplicemente gli approcci ingenui e i metodi successivi portano con sé una certa ottimizzazione. Ricorda qui, mentre gli elementi di attraversamento sono minori, generalmente tendiamo a iterare tramite un approccio ingenuo, altrimenti se la dimensione degli elementi da inserire è grande, allora utilizziamo approcci ottimali. Esaminiamo rapidamente ciascuno degli approcci di cui sopra.

Metodo 1: Utilizzo del ciclo for



Giava
// 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 numeri = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // Iterazione utilizzando il ciclo for for (int i = 0; i< numbers.size(); i++)     // Printing and display the elements in ArrayList   System.out.print(numbers.get(i) + ' ');   } }>

Produzione
1 2 3 4 5 6 7 8>

Metodo 2: Utilizzo del ciclo while

Giava
// 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 = nuovo ArrayList ();  // Aggiunta di elementi a ArrayList // utilizzando il metodo add() al.add(3);  al.add(1);  al.add(7);  al.add(20);  al.add(5);  // Passo 1: impostare e inizializzare una variabile // secondo la sintassi del ciclo while // Inizialmente dichiarare e impostare int val = 0;  // Passo 2: Condizione // Finché la nostra variabile contatore non è inferiore alla dimensione di // ArrayList while (al.size()> val) { // Stampa l'elemento che vale sopra // condizione true System.out.println(al .get(val));  // Passo 3: condizione di terminazione incrementando // il nostro contatore in ogni iterazione val++ ;  } } }>

Produzione
3 1 7 20 5>

Metodo 3: Utilizzo per ogni ciclo

Giava
// 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 numeri = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // For Each Ciclo per l'iterazione di ArrayList for (Integer i : numeri) // Stampa degli elementi di ArrayList System.out.print(i + ' ');  } }>

Produzione
1 2 3 4 5 6 7 8>

Metodo 4: Utilizzo di Iteratore



Giava
// 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 numeri = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // Iterazione di ArrayList utilizzando Iterator Iterator it = numeri.iterator();  // Rimane vero finché non rimane un singolo elemento // nella lista while (it.hasNext()) // Stampa gli elementi di ArrayList System.out.print(it.next() + ' ');  } }>

Produzione
1 2 3 4 5 6 7 8>

Metodo 5: Utilizzo delle espressioni Lambda

Giava
// 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 numeri = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // Stampa di numeri utilizzando espressioni lambda // introdotto più tardi in java8 number.forEach(number->System.out.println(number));  } }>

Produzione
1 2 3 4 5 6 7 8>

Metodo 6: Utilizzo dell'interfaccia di enumerazione

Giava
// 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 = nuovo ArrayList ();  // Aggiunta di elementi a ArrayList al.add(34);  al.add(12);  al.add(34);  al.add(23);  al.add(54);  // Ottenere un oggetto di enumerazione Enumerazione e = Collezioni.enumerazione(al);  // Finché gli elementi sono presenti while (e.hasMoreElements()) // Stampa gli elementi utilizzando il metodo nextElement() System.out.println(e.nextElement());  } }>

Produzione
34 12 34 23 54>

Ora è un ulteriore additivo all'articolo poiché abbiamo finito di discutere tutti i metodi che possono essere utilizzati per scorrere gli elementi. Finora abbiamo attraversato solo gli elementi di input e non abbiamo visto l'attraversamento e se giocassimo con gli elementi, quindi stiamo considerando

Esempio

Giava
// 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 = nuovo ArrayList ();  al.add(10);  al.add(20);  al.add(30);  al.add(1);  al.add(2);  // Rimuove gli elementi inferiori a 10 utilizzando // Iterator.remove() Iterator itr = al.iterator();  while (itr.hasNext()) { int x = (intero)itr.next();  se (x< 10)  itr.remove();  }  System.out.println('Modified ArrayList : '  + al);  } }>

Produzione
Modified ArrayList : [10, 20, 30]>

Rimozione di elementi durante l'attraversamento: Non è consigliabile utilizzare ArrayList.remove() durante l'iterazione sugli elementi. Ciò può portare a ConcurrentModificationException (Fare riferimento a Questo per un programma di esempio con questa eccezione). Quando si esegue un'iterazione sugli elementi, si consiglia di utilizzare Iterator.remove() metodo.