ArrayList face parte din cadru de colectare și este prezent în pachetul java.util. Ne oferă matrice dinamice în Java. Cu toate acestea, poate fi mai lent decât matricele standard, dar poate fi util în programele în care este nevoie de multă manipulare în matrice. Această clasă se găsește în java.util pachet.
Odată cu introducerea și actualizările în versiunile java, metode mai noi sunt disponibile, ca și cum am vedea din Java8 expresiile lambda perceptive și conceptele de fluxuri nu erau disponibile înainte, așa cum au fost introduse în versiunea java8.
Metode:
java end for bucla
- Folosind bucle for
- Folosind while
- Folosind pentru fiecare buclă
- Folosind Iterator
- Utilizarea expresiilor Lambda (numai după Java8)
- Folosind interfața de enumerare
Să discutăm despre aceste metode despre care putem percepe imediat că cele trei metode de pornire sunt pur și simplu abordări naive și mai departe metodele au o anumită optimizare cu ele. Amintiți-vă aici, în timp ce elementele de parcurs sunt mai mici, în general, avem tendința de a repeta prin abordare naivă numai dacă dimensiunea elementelor care trebuie inserate este mare, atunci folosim abordări optime. Să încheiem rapid fiecare dintre abordările de mai sus.
Metoda 1: Folosind bucla 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 numere = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Repetare folosind bucla for for (int i = 0; i< numbers.size(); i++) // Printing and display the elements in ArrayList System.out.print(numbers.get(i) + ' '); } }> Ieșire
1 2 3 4 5 6 7 8>
Metoda 2: Folosind bucla 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 = noua ArrayList (); // Adăugarea elementelor la ArrayList // folosind metoda add() al.add(3); al.add(1); al.add(7); al.add(20); al.add(5); // Pasul 1: Setarea și inițializarea unei variabile // conform sintaxei buclei while // Inițial declararea și setarea int val = 0; // Pasul 2: Condiție // Până când variabila noastră de contor este mai mică decât dimensiunea // ArrayList while (al.size()> val) { // Tipărirea elementului care se află deasupra // condiția true System.out.println(al .get(val)); // Pasul 3: Terminarea condiției prin creșterea // contorul nostru în fiecare iterație val++ ; } } }>>>
Ieșire 3 1 7 20 5>
Metoda 3: Folosind pentru fiecare buclă
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 numere = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Pentru fiecare buclă pentru iterarea ArrayList for (Integer i : numere) // Tipărirea elementelor ArrayList System.out.print(i + ' '); } }>>>
Ieșire Metoda 4: Folosind Iterator
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 numere = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Iterarea ArrayList folosind Iterator Iterator it = numbers.iterator(); // Se menține adevărat până când rămâne un singur element // în listă în timp ce (it.hasNext()) // Imprimă elementele ArrayList System.out.print(it.next() + ' '); } }>>>
Ieșire Metoda 5: Folosind expresii 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 numere = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Tipărirea numerelor folosind expresii lambda // a fost introdus mai târziu în java8 numbers.forEach(number->System.out.println(number)); } }>>>
Ieșire Metoda 6: Folosind interfața de enumerareJava // 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 = noua ArrayList (); // Adăugarea elementelor la ArrayList al.add(34); al.add(12); al.add(34); al.add(23); al.add(54); // Obținerea unui obiect de enumerare Enumerare e = Colecții.enumerare(al); // Elementele Till sunt acolo while (e.hasMoreElements()) // Imprimă elemente folosind metoda nextElement() System.out.println(e.nextElement()); } }>>>
Ieșire Acum este un aditiv suplimentar la articol, deoarece am terminat cu discutarea tuturor metodelor care pot fi utilizate pentru a repeta peste elemente. Până acum am parcurs doar elementele de intrare și nu am văzut traversarea, ce dacă ne jucăm cu elemente, așa că luăm în considerare Exemplu
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 = noua ArrayList (); al.add(10); al.add(20); al.add(30); al.add(1); al.add(2); // Eliminați elementele mai mici de 10 folosind // Iterator.remove() Iterator itr = al.iterator(); while (itr.hasNext()) { int x = (Integer)itr.next(); dacă (x< 10) itr.remove(); } System.out.println('Modified ArrayList : ' + al); } }>
Ieșire Eliminarea elementelor în timpul traversării: Nu este recomandat să utilizați ArrayList.remove() atunci când iterați peste elemente. Acest lucru poate duce la ConcurrentModificationException (A se referi la acest pentru un program exemplu cu această excepție). Când iterați peste elemente, se recomandă utilizarea Iterator.remove() metodă.