Lister i Java lar oss opprettholde en ordnet samling av objekter. Dupliserte elementer så vel som null-elementer kan også lagres i en liste i Java. List-grensesnittet er en del av java.util pakken, og den arver samlingsgrensesnittet. Den bevarer rekkefølgen for innsetting.
Det er flere måter å iterere over List i Java. De er omtalt nedenfor:
Metoder:
- Bruke loops (naiv tilnærming)
- Ved hjelp av Iterator
- Ved hjelp av Liste iterator
- Bruker lambda-uttrykk
- Ved hjelp av stream.forEach()
- Bruke Spliterator (Java 8 og nyere)
Metode 1-A: Enkel for loop
Hvert element kan nås ved iterasjon ved å bruke en enkel for loop. Indeksen kan nås ved å bruke indeksen som en sløyfevariabel.
Syntaks:
for (i = 0; i>
Nedenfor er et eksempel på denne metoden:
Java
// Java Program to iterate over List // Using simple for loop // Importing all classes of // java.util package import java.util.*; // CLass class GFG { // Main driver method public static void main(String args[]) { // Creating a ArrayList ListmyList = ny ArrayList(); // Legge til elementer i listen // Egendefinerte inndata myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // For loop for iterasjon over Listen for (int i = 0; i< myList.size(); i++) { // Print all elements of List System.out.println(myList.get(i)); } } }>
Produksjon
A B C D>
Kompleksiteten til metoden ovenfor:
Tidskompleksitet: O(n), der 'n' er størrelsen på listen.
Hjelpeplass: O(1), Konstant mellomrom brukes for sløyfevariabler (i i dette tilfellet).
Metode 1-B: Forbedret for loop
Hvert element kan nås ved iterasjon ved å bruke en forbedret for-løkke. Denne sløyfen ble introdusert i J2SE 5.0. Det er en alternativ tilnærming til å krysse for en løkke. Det gjør koden mer lesbar.
Syntaks:
for(data_type variable : List_name) { // Body of the loop. // Each element can be accessed using variable. }>
Nedenfor er eksempelet på denne metoden:
Java // Java Program to Iterate over a List // using enhanced for loop (for-each) // Importing all classes of // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an Arraylist ListmyList = ny ArrayList(); // Legge til elementer i listen // Egendefinerte inndata myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Bruker forbedret for loop(for-each) for iterasjon for (String i : myList) { // Skriv ut alle elementene i ArrayList System.out.println(i); } } }>
Produksjon
A B C D>
Kompleksiteten til metoden ovenfor:
Tidskompleksitet: O(n), der 'n' er størrelsen på listen.
Hjelpeplass: O(1), Konstant mellomrom brukes for sløyfevariabler (i i dette tilfellet).fang og prøv java
Metode 1-C: Bruk en while-løkke
Iterering over en liste kan også oppnås ved å bruke en while-løkke. Kodeblokken inne i løkken kjøres til betingelsen er sann. En loop-variabel kan brukes som an indeks for å få tilgang til hvert element.
Syntaks:
while(variable>
Nedenfor er eksempelet på denne metoden:
Java // Java Program to iterate over a List // using while loop // Importing all classes of // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = ny ArrayList(); // Legge til elementer i listen // Egendefinerte inndata myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Initialisere enhver variabel til 0 int i = 0; // Hvis variabelverdien er mindre enn //-verdien som indikerer størrelsen på listen mens (dvs< myList.size()) { // Print element of list System.out.println(myList.get(i)); // Increase variable count by 1 i++; } } }>
Produksjon
A B C D>
Kompleksiteten til metoden ovenfor:
ekvivalenslover
Tidskompleksitet: O(n), der 'n' er størrelsen på listen.
Auxiliary Space : O(1), Konstant mellomrom brukes for sløyfevariabler (i i dette tilfellet).
Metode 2: Bruke iterator
En iterator er et objekt i Java som tillater iterasjon over elementer i en samling. Hvert element i listen kan nås ved å bruke iterator med en while-løkke.
Syntaks:
Iterator variable = list_name.iterator();>
Nedenfor er eksempelet på denne metoden:
Java // Java Program to iterate over the list // using iterator // Importing all classes of // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = ny ArrayList(); // Legge til elementer i listen // Egendefinerte inndata myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Iterator Iteratorit = myList.iterator(); // Tilstandssjekk for elementer i List // ved hjelp av hasNext()-metoden returnerer true till // det er enkeltelement i en List while (it.hasNext()) { // Skriv ut alle elementene i List System.out.println(it) .neste()); } } }>
Produksjon
A B C D>
Kompleksiteten til metoden ovenfor:
Tidskompleksitet: O(n), der 'n' er størrelsen på listen.
Hjelpeplass: O(1), Konstant mellomrom brukes for sløyfevariabler (i i dette tilfellet).
Metode 3: Bruke List iterator
ListIterator er en iterator i Java som er tilgjengelig siden 1.2-versjonen. Det lar oss iterere elementer én etter én fra et List-implementert objekt. Den brukes til å iterere over en liste med while-løkke.
Syntaks:
ListIterator variable = list_name.listIterator();>
Nedenfor er eksempelet på denne metoden:
Java // Java program to iterate over a list // using ListIterator import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = ny ArrayList(); // Legge til elementer i listen // Egendefinerte inndata myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // List iterator ListIteratorit = myList.listIterator(); // Betingelsessjekk om det er element i List // ved å bruke hasNext() som gjelder til // det er enkeltelement i List while (it.hasNext()) { // Skriv ut alle elementene i List System.out.println( it.neste()); } } }>
Produksjon
A B C D>
Kompleksiteten til metoden ovenfor:
Tidskompleksitet: O(n), der 'n' er størrelsen på listen.
Hjelpeplass: O(1), Konstant mellomrom brukes for sløyfevariabler (i i dette tilfellet).
Metode 4: Bruke Iterable.forEach()
Denne funksjonen er tilgjengelig siden Java 8. Den kan også brukes til å iterere over en liste. Iterasjon kan gjøres ved hjelp av en lambda uttrykk.
Syntaks:
list_name.forEach(variable->{//kodeblokk})>
Nedenfor er eksempelet på denne metoden:
Java // Java Program to iterate over a List // using forEach() // Importing all classes of // java.util method import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = ny ArrayList(); // Legge til elementer i listen // Egendefinerte inndata myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Lambda-uttrykk som skriver ut alle elementene i en Liste myList.forEach( (temp) -> { System.out.println(temp); }); } }>
Produksjon
A B C D>
Kompleksiteten til metoden ovenfor:
Tidskompleksitet: O(n), der 'n' er størrelsen på listen.
Hjelpeplass: O(1), Konstant mellomrom brukes for sløyfevariabler (i i dette tilfellet).
Metode 5: Bruk Stream.forEach()
Behandlingsrekkefølgen til stream().forEach() er udefinert, mens den er definert i tilfelle forEach(). Begge kan brukes til å iterere over en liste.
Syntaks:
list_name.stream.forEach(variable->{//kodeblokk})>
Nedenfor er eksempelet på denne metoden:
Java // Java Program iterating over a List // using stream.forEach() method // Importing all classes of // java.util method import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = ny ArrayList(); // Legge til elementer i listen // Egendefinerte inndata myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // stream.forEach()-metoden skriver ut // alle elementer i en List myList.stream().forEach( (temp) -> System.out.println(temp)); } }>
Produksjon
A B C D>
Kompleksiteten til metoden ovenfor:
Tidskompleksitet: O(n), der 'n' er størrelsen på listen.
Hjelpeplass: O(1), Konstant mellomrom brukes for sløyfevariabler (i i dette tilfellet).
Metoder 6: Bruke Spliterator (Java 8 og nyere)
Java 8 introduserte Spliterator grensesnitt, som står for split iterator. Det gir en måte å iterere over elementer på en mer parallellvennlig måte. En Spliterator kan fås fra forskjellige kilder, inkludert samlinger som lister. ForEachRemaining-metoden til Spliterator brukes til å krysse alle gjenværende elementer sekvensielt.
Syntaks:
Spliterator spliterator = myList.spliterator();>
Nedenfor er eksempelet på denne metoden:
midtbilde i cssJava
// Java Program iterating over a List // using Spliterator import java.util.List; import java.util.Spliterator; public class ListIteration { public static void main(String[] args) { // List of String ListmyList = List.of('A', 'B', 'C','D'); // Bruke Spliterator Spliteratorsplitter = myList.spliterator(); spliterator.forEachRemaining(System.out::println); } }>
Produksjon
A B C D>
Kompleksiteten til metoden ovenfor:
Tidskompleksitet: O(n), der 'n' er størrelsen på listen.
Hjelpeplass: O(log n) eller O(1), (avhengig av egenskapene til Spliterator-implementeringen)