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
- Utilizzo dei cicli for
- Utilizzo mentre
- Utilizzando for-each loop
- Utilizzo di Iteratore
- Utilizzo delle espressioni Lambda (solo dopo Java8)
- 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.