logo

Iteracija po seznamu v Javi

Seznami v Javi nam omogočajo vzdrževanje urejene zbirke predmetov. Podvojene elemente in ničelne elemente je mogoče shraniti tudi na seznam v Javi. Vmesnik List je del java.util paket in podeduje vmesnik zbirke. Ohranja vrstni red vstavljanja.

Obstaja več načinov za ponavljanje seznama v Javi. Spodaj so obravnavani:



Metode:

  1. Uporaba zank (naivni pristop)
  2. Uporaba Iterator
  3. Uporaba Iterator seznama
  4. Uporaba lambda izraza
  5. Uporaba stream.forEach()
  6. Uporaba Spliteratorja (Java 8 in novejše)

Metoda 1-A: Preprosta zanka for

Do vsakega elementa je mogoče dostopati z iteracijo z uporabo preproste zanke for. Do indeksa lahko dostopate z uporabo indeksa kot spremenljivke zanke.

Sintaksa:

for (i = 0; i>

Spodaj je primer te metode:



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 = nov ArrayList();  // Dodajanje elementov na seznam // Vnosi po meri myList.add('A');  myList.add('B');  myList.add('C');  myList.add('D');  // Zanka For za ponavljanje seznama for (int i = 0; i< myList.size(); i++) {  // Print all elements of List  System.out.println(myList.get(i));  }  } }>

Izhod
A B C D>

Kompleksnost zgornje metode:

Časovna zapletenost: O(n), kjer je 'n' velikost seznama.
Pomožni prostor: O(1), Konstantni prostor se uporablja za spremenljivke zanke (v tem primeru i).

Metoda 1-B: Izboljšana zanka for

Do vsakega elementa je mogoče dostopati z iteracijo z uporabo izboljšane zanke for. Ta zanka je bila predstavljena v J2SE 5.0. To je alternativni pristop za prečkanje zanke for. Zaradi tega je koda bolj berljiva.



Sintaksa:

for(data_type variable : List_name) { // Body of the loop. // Each element can be accessed using variable. }>

Spodaj je primer te metode:

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 = nov ArrayList();  // Dodajanje elementov na seznam // Vnosi po meri myList.add('A');  myList.add('B');  myList.add('C');  myList.add('D');  // Uporaba izboljšane for loop(for-each) za iteracijo for (String i : myList) { // Natisni vse elemente ArrayList System.out.println(i);  } } }>

Izhod
A B C D>

Kompleksnost zgornje metode:

Časovna zapletenost: O(n), kjer je 'n' velikost seznama.
Pomožni prostor: O(1), Konstantni prostor se uporablja za spremenljivke zanke (v tem primeru i).

Metoda 1-C: Uporaba zanke while

Ponavljanje po seznamu je mogoče doseči tudi z uporabo zanke while. Blok kode znotraj zanke se izvaja, dokler pogoj ni resničen. Spremenljivko zanke lahko uporabite kot an indeks za dostop do vsakega elementa.

Sintaksa:

while(variable>

Spodaj je primer te metode:

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 = nov ArrayList();  // Dodajanje elementov na seznam // Vnosi po meri myList.add('A');  myList.add('B');  myList.add('C');  myList.add('D');  // Inicializacija katere koli spremenljivke na 0 int i = 0;  // Če je vrednost spremenljivke manjša od // vrednosti, ki označuje velikost seznama medtem ko (tj< myList.size()) {  // Print element of list  System.out.println(myList.get(i));  // Increase variable count by 1  i++;  }  } }>

Izhod
A B C D>

Kompleksnost zgornje metode:

Časovna zapletenost: O(n), kjer je 'n' velikost seznama.
Pomožni prostor : O(1), Konstantni prostor se uporablja za spremenljivke zanke (v tem primeru i).

2. način: Uporaba iteratorja

Iterator je objekt v Javi, ki omogoča ponavljanje elementov zbirke. Do vsakega elementa na seznamu je mogoče dostopati z uporabo iteratorja z zanko while.

Sintaksa:

Iterator variable = list_name.iterator();>

Spodaj je primer te metode:

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 = nov ArrayList();  // Dodajanje elementov na seznam // Vnosi po meri myList.add('A');  myList.add('B');  myList.add('C');  myList.add('D');  // Iterator Iteratorit = myList.iterator();  // Preverjanje pogojev za elemente na seznamu // z uporabo metode hasNext(), ki vrne true, dokler // na seznamu ni enega samega elementa while (it.hasNext()) { // Natisni vse elemente seznama System.out.println(it .Naslednji());  } } }>

Izhod
A B C D>

Kompleksnost zgornje metode:

Časovna zapletenost: O(n), kjer je 'n' velikost seznama.
Pomožni prostor: O(1), Konstantni prostor se uporablja za spremenljivke zanke (v tem primeru i).

3. način: Uporaba iteratorja seznama

ListIterator je iterator v Javi, ki je na voljo od različice 1.2. Omogoča nam ponavljanje elementov enega za drugim iz implementiranega predmeta List. Uporablja se za iteracijo po seznamu z uporabo zanke while.

Sintaksa:

komisija za izbor kadrov pomen
ListIterator variable = list_name.listIterator();>

Spodaj je primer te metode:

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 = nov ArrayList();  // Dodajanje elementov na seznam // Vnosi po meri myList.add('A');  myList.add('B');  myList.add('C');  myList.add('D');  // Iterator seznama ListIteratorit = myList.listIterator();  // Preverjanje pogoja, ali je element na seznamu // z uporabo hasNext(), ki velja, dokler // na seznamu ni enega samega elementa while (it.hasNext()) { // Natisni vse elemente seznama System.out.println( it.next());  } } }>

Izhod
A B C D>

Kompleksnost zgornje metode:

Časovna zapletenost: O(n), kjer je 'n' velikost seznama.
Pomožni prostor: O(1), Konstantni prostor se uporablja za spremenljivke zanke (v tem primeru i).

4. način: Uporaba Iterable.forEach()

Ta funkcija je na voljo od Jave 8 naprej. Uporablja se lahko tudi za ponavljanje seznama. Ponovitev je mogoče izvesti z uporabo a lambda izraz.

Sintaksa:

list_name.forEach(variable->{//blok kode})>

Spodaj je primer te metode:

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 = nov ArrayList();  // Dodajanje elementov na seznam // Vnosi po meri myList.add('A');  myList.add('B');  myList.add('C');  myList.add('D');  // Lambda izraz, ki natisne vse elemente v seznamu myList.forEach( (temp) -> { System.out.println(temp); });  } }>

Izhod
A B C D>

Kompleksnost zgornje metode:

Časovna zapletenost: O(n), kjer je 'n' velikost seznama.
Pomožni prostor: O(1), Konstantni prostor se uporablja za spremenljivke zanke (v tem primeru i).

5. način: Uporaba Stream.forEach()

Vrstni red obdelave stream().forEach() je nedefiniran, medtem ko je v primeru forEach() definiran. Oboje je mogoče uporabiti za ponavljanje seznama.

Sintaksa:

list_name.stream.forEach(variable->{//blok kode})>

Spodaj je primer te metode:

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 = nov ArrayList();  // Dodajanje elementov na seznam // Vnosi po meri myList.add('A');  myList.add('B');  myList.add('C');  myList.add('D');  // metoda stream.forEach() natisne // vse elemente znotraj seznama myList.stream().forEach( (temp) -> System.out.println(temp));  } }>

Izhod
A B C D>

Kompleksnost zgornje metode:

Časovna zapletenost: O(n), kjer je 'n' velikost seznama.
Pomožni prostor: O(1), Konstantni prostor se uporablja za spremenljivke zanke (v tem primeru i).

Metoda 6: Uporaba Spliteratorja (Java 8 in novejše)

Java 8 je predstavila Spliterator vmesnik, kar pomeni split iterator. Zagotavlja način ponavljanja elementov na bolj vzporedno prijazen način. Spliterator lahko dobite iz različnih virov, vključno z zbirkami, kot so seznami. Metoda forEachRemaining Spliteratorja se uporablja za zaporedno prečkanje vseh preostalih elementov.

Sintaksa:

Spliterator spliterator = myList.spliterator();>

Spodaj je primer te metode:

Java
// 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');    // Uporaba Spliterator Spliteratorspliterator = myList.spliterator();  spliterator.forEachRemaining(System.out::println);  } }>

Izhod
A B C D>

Kompleksnost zgornje metode:

Časovna zapletenost: O(n), kjer je 'n' velikost seznama.
Pomožni prostor: O(log n) ali O(1), (odvisno od značilnosti izvedbe Spliteratorja)