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:
- Uporaba zank (naivni pristop)
- Uporaba Iterator
- Uporaba Iterator seznama
- Uporaba lambda izraza
- Uporaba stream.forEach()
- 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)