logo

Jak iterovat seznam v Javě

v Javě, Seznam je rozhraním Kolektivní rámec . Umožňuje nám udržovat uspořádanou sbírku předmětů. Implementační třídy rozhraní List jsou ArrayList, LinkedList, Stack , a Vektor . ArrayList a LinkedList jsou široce používány v Jáva . V této části se naučíme jak iterovat seznam v Javě . V této části budeme používat ArrayList .

Java pro smyčku

  1. Základní pro Loop
  2. Vylepšeno pro Loop

Iterátory Java

  1. Iterátor
  2. ListIterator

Java pro každou metodu

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

Java pro smyčku

Základní pro Loop

Java pro smyčku je nejběžnější smyčka řízení toku pro iteraci. Smyčka for obsahuje proměnnou, která funguje jako číslo indexu. Provádí se, dokud se celý seznam neopakuje.

Syntax:

 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šeno pro Loop

Je podobný základnímu cyklu for. Je skladný, snadný a čitelný. Je široce používán k provádění procházení seznamu. Je to snadné ve srovnání se základní smyč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ýstup

 Boston San Diego Las Vegas Houston Miami Austin 

Java Iterator

Iterátor

Java poskytuje rozhraní Iterator na opakovat přes kolekce, jako je seznam, mapa atd. Obsahuje dvě klíčové metody next() a hasNaxt(), které nám umožňují provádět iteraci nad seznamem.

další(): Metoda next() provádí iteraci v dopředném pořadí. Vrátí další prvek v seznamu. To hází NoSuchElementException pokud iterace neobsahuje další prvek v seznamu. Tato metoda může být volána opakovaně, aby se procházela seznamem, nebo může být kombinována s voláním previous() pro přechod tam a zpět.

Syntax:

 E next() 

hasNext(): Metoda hasNext() nám pomáhá najít poslední prvek seznamu. Zkontroluje, zda seznam obsahuje další prvek nebo ne. Pokud metoda hasNext() získá prvek během procházení v dopředném směru, vrátí true, jinak vrátí false a ukončí provádění.

Syntax:

v řetězci v jazyce Java
 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ýstup

 Boston San Diego Las Vegas Houston Miami Austin 

ListIterator

ListIterator je také rozhraní, které patří do balíčku java.util. Prodlužuje se Iterátor rozhraní. Umožňuje nám iterovat seznam v dopředném nebo zpětném pořadí. Dopředná iterace přes Seznam poskytuje stejný mechanismus, jaký používá Iterátor. K iteraci seznamu používáme metody next() a hasNext() rozhraní 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ýstup

 Boston San Diego Las Vegas Houston Miami Austin 

Java pro každou metodu

Iterable.forEach()

Rozhraní Iterable poskytuje metodu forEach() pro iteraci seznamu. Je k dispozici od Java 8. Provádí specifikovanou akci pro každý prvek, dokud nejsou zpracovány všechny prvky nebo dokud akce nevyvolá výjimku. Jako parametr přijímá také výrazy lambda.

java získat aktuální čas

Syntax:

 default void forEach(Consumer action) 

Výchozí implementace se chová takto:

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

Přijímá to akce jako parametr, který je nezasahující (znamená, že zdroj dat se během provádění stream pipeline vůbec nezmění) akce, která se má provést na prvcích. To hází Výjimka NullPointerException pokud je zadaná akce nulová.

The Spotřebitel je funkční rozhraní, které lze použít jako cíl přiřazení pro výraz lambda nebo odkaz na metodu. T je typ vstupu do operace. Představuje operaci, která přijímá jediný vstupní argument a nevrací žádný výsledek.

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ýstup

 Boston San Diego Las Vegas Houston Miami Austin 

Stream.forEach()

Rozhraní Java Stream nám umožňuje převádět hodnoty List do streamu. S pomocí rozhraní Stream můžeme přistupovat k operacím jako forEach(), map() a filter().

Syntax:

 void forEach(Consumer action) 

Přijímá to akce jako parametr, který je nezasahující (znamená, že zdroj dat se během provádění stream pipeline vůbec nezmění) akce, která se má provést na prvcích.

The Spotřebitel je funkční rozhraní, které lze použít jako cíl přiřazení pro výraz lambda nebo odkaz na metodu. T je typ vstupu do operace. Představuje operaci, která přijímá jediný vstupní argument a nevrací žádný výsledek.

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ýstup

 Boston San Diego Las Vegas Houston Miami Austin