logo

Ako iterovať zoznam v jazyku Java

v Jave Zoznam je to rozhranie Kolekčný rámec . Poskytuje nám udržiavanie usporiadanej zbierky predmetov. Triedy implementácie rozhrania List sú ArrayList, LinkedList, Stack a Vektor . ArrayList a LinkedList sú široko používané v Java . V tejto časti sa naučíme ako iterovať zoznam v jazyku Java . V tejto časti budeme používať ArrayList .

Java pre slučku

  1. Základné pre Loop
  2. Vylepšené pre Loop

Iterátory Java

  1. Iterátor
  2. ListIterator

Java pre každú metódu

  1. Iterable.forEach()
  2. Stream.forEach()

Java pre slučku

Základné pre Loop

Java for loop je najbežnejšou slučkou riadenia toku pre iteráciu. Cyklus for obsahuje premennú, ktorá funguje ako číslo indexu. Vykonáva sa, kým sa celý zoznam neopakuje.

Syntax:

np kde
 for(initialization; condition; increment or decrement) { //body of the loop } 

IterateListExample1.java

 import java.util.*; public class IterateListExample1 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate list using for loop for (int i = 0; i <city.size(); i++) { prints the elements of list system.out.println(city.get(i)); } < pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h3>Enhanced for Loop</h3> <p>It is similar to the basic for loop. It is compact, easy, and readable. It is widely used to perform traversal over the List. It is easy in comparison to basic for loop.</p> <p> <strong>Syntax:</strong> </p> <pre> for(data_type variable : array | collection) { //body of the loop } </pre> <p> <strong>IterateListExample2.java</strong> </p> <pre> import java.util.*; public class IterateListExample2 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iteration over List using enhanced for loop for (String cities : city) { //prints the elements of the List System.out.println(cities); } } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h2>Java Iterator</h2> <h3>Iterator</h3> <p> <a href="/iterator-java">Java provides an interface Iterator</a> to <strong>iterate</strong> over the Collections, such as List, Map, etc. It contains two key methods next() and hasNaxt() that allows us to perform an iteration over the List.</p> <p> <strong>next():</strong> The next() method perform the iteration in forward order. It returns the next element in the List. It throws <strong>NoSuchElementException</strong> if the iteration does not contain the next element in the List. This method may be called repeatedly to iterate through the list, or intermixed with calls to previous() to go back and forth.</p> <p> <strong>Syntax:</strong> </p> <pre> E next() </pre> <p> <strong>hasNext():</strong> The hasNext() method helps us to find the last element of the List. It checks if the List has the next element or not. If the hasNext() method gets the element during traversing in the forward direction, returns true, else returns false and terminate the execution.</p> <p> <strong>Syntax:</strong> </p> <pre> boolean hasNext() </pre> <p> <strong>IterateListExample3.java</strong> </p> <pre> import java.util.*; public class IterateListExample3 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using enhances for loop Iterator cityIterator = city.iterator(); //iterator over List using while loop while(cityIterator.hasNext()) { System.out.println(cityIterator.next()); } } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h3>ListIterator</h3> <p>The ListIterator is also an interface that belongs to java.util package. It extends <strong>Iterator</strong> interface. It allows us to iterate over the List either in forward or backward order. The forward iteration over the List provides the same mechanism, as used by the Iterator. We use the next() and hasNext() method of the Iterator interface to iterate over the List.</p> <p> <strong>IterateListExample4.java</strong> </p> <pre> import java.util.*; public class IterateListExample4 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using the ListIterator ListIterator listIterator = city.listIterator(); while(listIterator.hasNext()) { //prints the elements of the List System.out.println(listIterator.next()); } } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h2>Java forEach Method</h2> <h3>Iterable.forEach()</h3> <p>The Iterable interface provides forEach() method to iterate over the List. It is available since Java 8. It performs the specified action for each element until all elements have been processed or the action throws an exception. It also accepts Lambda expressions as a parameter.</p> <p> <strong>Syntax:</strong> </p> <pre> default void forEach(Consumer action) </pre> <p>The default implementation behaves like:</p> <pre> for (T t : this) action.accept(t); </pre> <p>It accepts <strong>action</strong> as a parameter that is <strong>non-interfering</strong> (means that the data source is not modified at all during the execution of the stream pipeline) action to perform on the elements. It throws <strong>NullPointerException</strong> if the specified action is null.</p> <p>The <strong>Consumer</strong> is a functional interface that can be used as the assignment target for a lambda expression or method reference. T is the type of input to the operation. It represents an operation that accepts a single input argument and returns no result.</p> <p> <strong>IterateListExample5.java</strong> </p> <pre> import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach city.forEach(System.out::println); } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h3>Stream.forEach()</h3> <p>Java Stream interface allows us to convert the List values into a stream. With the help of Stream interface we can access operations like forEach(), map(), and filter().</p> <p> <strong>Syntax:</strong> </p> <pre> void forEach(Consumer action) </pre> <p>It accepts <strong>action</strong> as a parameter that is <strong>non-interfering</strong> (means that the data source is not modified at all during the execution of the stream pipeline) action to perform on the elements.</p> <p>The <strong>Consumer</strong> is a functional interface that can be used as the assignment target for a lambda expression or method reference. T is the type of input to the operation. It represents an operation that accepts a single input argument and returns no result.</p> <p> <strong>IterateListExample5.java</strong> </p> <pre> import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach loop city.stream().forEach((c) -&gt; System.out.println(c)); } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <hr></city.size();>

Vylepšené pre Loop

Je podobný základnej slučke for. Je kompaktný, ľahký a čitateľný. Je široko používaný na vykonávanie prechodu cez zoznam. Je to jednoduché v porovnaní so základnou slučkou for.

Syntax:

 for(data_type variable : array | collection) { //body of the loop } 

IterateListExample2.java

 import java.util.*; public class IterateListExample2 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iteration over List using enhanced for loop for (String cities : city) { //prints the elements of the List System.out.println(cities); } } } 

Výkon

 Boston San Diego Las Vegas Houston Miami Austin 

Java Iterator

Iterátor

Java poskytuje rozhranie Iterator do iterovať nad kolekciami, ako je zoznam, mapa atď. Obsahuje dve kľúčové metódy next() a hasNaxt(), ktoré nám umožňujú vykonať iteráciu nad zoznamom.

Ďalšie(): Metóda next() vykoná iteráciu v doprednom poradí. Vráti ďalší prvok v zozname. To hádže NoSuchElementException ak iterácia neobsahuje ďalší prvok v zozname. Túto metódu možno volať opakovane na iteráciu cez zoznam alebo ju možno kombinovať s volaniami predchádzajúcej() na prechod tam a späť.

Syntax:

aké sú rozmery obrazovky môjho počítača
 E next() 

hasNext(): Metóda hasNext() nám pomáha nájsť posledný prvok zoznamu. Skontroluje, či má zoznam ďalší prvok alebo nie. Ak metóda hasNext() získa prvok počas prechodu v smere dopredu, vráti hodnotu true, inak vráti hodnotu false a ukončí vykonávanie.

Syntax:

 boolean hasNext() 

IterateListExample3.java

 import java.util.*; public class IterateListExample3 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using enhances for loop Iterator cityIterator = city.iterator(); //iterator over List using while loop while(cityIterator.hasNext()) { System.out.println(cityIterator.next()); } } } 

Výkon

 Boston San Diego Las Vegas Houston Miami Austin 

ListIterator

ListIterator je tiež rozhranie, ktoré patrí do balíka java.util. Rozširuje sa Iterátor rozhranie. Umožňuje nám to iterovať cez zoznam v poradí dopredu alebo dozadu. Dopredná iterácia cez zoznam poskytuje rovnaký mechanizmus, aký používa Iterátor. Na iteráciu cez zoznam používame metódy next() a hasNext() rozhrania Iterator.

IterateListExample4.java

 import java.util.*; public class IterateListExample4 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using the ListIterator ListIterator listIterator = city.listIterator(); while(listIterator.hasNext()) { //prints the elements of the List System.out.println(listIterator.next()); } } } 

Výkon

čo je myspace
 Boston San Diego Las Vegas Houston Miami Austin 

Java pre každú metódu

Iterable.forEach()

Iterovateľné rozhranie poskytuje metódu forEach() na iteráciu cez zoznam. Je k dispozícii od Java 8. Vykonáva špecifikovanú akciu pre každý prvok, kým nie sú spracované všetky prvky alebo kým akcia nevyvolá výnimku. Ako parameter prijíma aj výrazy lambda.

Syntax:

 default void forEach(Consumer action) 

Predvolená implementácia sa správa takto:

 for (T t : this) action.accept(t); 

Prijíma sa akcie ako parameter, ktorý je nezasahujúce (znamená, že zdroj údajov sa počas vykonávania prúdového potrubia vôbec nezmení) akcia, ktorá sa má vykonať na prvkoch. To hádže Výnimka NullPointerException ak je zadaná akcia nulová.

The Spotrebiteľ je funkčné rozhranie, ktoré možno použiť ako cieľ priradenia pre výraz lambda alebo odkaz na metódu. T je typ vstupu do operácie. Predstavuje operáciu, ktorá akceptuje jeden vstupný argument a nevracia žiadny výsledok.

IterateListExample5.java

 import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach city.forEach(System.out::println); } } 

Výkon

parameter v shell skripte
 Boston San Diego Las Vegas Houston Miami Austin 

Stream.forEach()

Rozhranie Java Stream nám umožňuje konvertovať hodnoty zoznamu na stream. Pomocou rozhrania Stream môžeme pristupovať k operáciám ako forEach(), map() a filter().

Syntax:

 void forEach(Consumer action) 

Prijíma sa akcie ako parameter, ktorý je nezasahujúce (znamená, že zdroj údajov sa počas vykonávania prúdového potrubia vôbec nezmení) akcia, ktorá sa má vykonať na prvkoch.

The Spotrebiteľ je funkčné rozhranie, ktoré možno použiť ako cieľ priradenia pre výraz lambda alebo odkaz na metódu. T je typ vstupu do operácie. Predstavuje operáciu, ktorá akceptuje jeden vstupný argument a nevracia žiadny výsledok.

IterateListExample5.java

 import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach loop city.stream().forEach((c) -&gt; System.out.println(c)); } } 

Výkon

 Boston San Diego Las Vegas Houston Miami Austin