In Java, Aufführen ist eine Schnittstelle des Sammlungsrahmen . Es ermöglicht uns, die geordnete Sammlung von Objekten aufrechtzuerhalten. Die Implementierungsklassen der List-Schnittstelle sind ArrayList, LinkedList, Stack , Und Vektor . ArrayList und LinkedList werden häufig verwendet Java . In diesem Abschnitt werden wir lernen wie man eine Liste in Java iteriert . In diesem Abschnitt verwenden wir Anordnungsliste .
Java for-Schleife
- Grundlegende for-Schleife
- Verbesserte for-Schleife
Java-Iteratoren
- Iterator
- ListIterator
Java forEach-Methode
- Iterable.forEach()
- Stream.forEach()
Java for-Schleife
Grundlegende for-Schleife
Java for-Schleife ist die häufigste Flusskontrollschleife für Iterationen. Die for-Schleife enthält eine Variable, die als Indexnummer fungiert. Es wird ausgeführt, bis die gesamte Liste nicht iteriert.
Syntax:
for(initialization; condition; increment or decrement) { //body of the loop }
IterateListExample1.java
durchgestrichener Abschlag
import java.util.*; public class IterateListExample1 { public static void main(String args[]) { //defining a List List city = Arrays.asList('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //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('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //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('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //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('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //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('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //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('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //iterate List using forEach loop city.stream().forEach((c) -> System.out.println(c)); } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <hr></city.size();>
Verbesserte for-Schleife
Es ähnelt der grundlegenden for-Schleife. Es ist kompakt, einfach und lesbar. Es wird häufig zum Durchlaufen der Liste verwendet. Im Vergleich zur einfachen for-Schleife ist es einfach.
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('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //iteration over List using enhanced for loop for (String cities : city) { //prints the elements of the List System.out.println(cities); } } }
Ausgabe
Boston San Diego Las Vegas Houston Miami Austin
Java-Iterator
Iterator
Java bietet einen Schnittstellen-Iterator Zu iterieren über die Sammlungen wie Liste, Karte usw. Es enthält zwei Schlüsselmethoden next() und hasNaxt(), die es uns ermöglichen, eine Iteration über die Liste durchzuführen.
nächste(): Die next()-Methode führt die Iteration in Vorwärtsreihenfolge durch. Es gibt das nächste Element in der Liste zurück. Es wirft NoSuchElementException wenn die Iteration nicht das nächste Element in der Liste enthält. Diese Methode kann wiederholt aufgerufen werden, um die Liste zu durchlaufen, oder mit Aufrufen von previous() gemischt werden, um hin und her zu gehen.
Syntax:
E next()
hasNext(): Die Methode hasNext() hilft uns, das letzte Element der Liste zu finden. Es prüft, ob die Liste das nächste Element enthält oder nicht. Wenn die Methode hasNext() das Element beim Durchlaufen in Vorwärtsrichtung abruft, gibt sie „true“ zurück, andernfalls gibt sie „false“ zurück und beendet die Ausführung.
Syntax:
boolean hasNext()
IterateListExample3.java
import java.util.*; public class IterateListExample3 { public static void main(String args[]) { //defining a List List city = Arrays.asList('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //iterate List using enhances for loop Iterator cityIterator = city.iterator(); //iterator over List using while loop while(cityIterator.hasNext()) { System.out.println(cityIterator.next()); } } }
Ausgabe
Boston San Diego Las Vegas Houston Miami Austin
ListIterator
Der ListIterator ist auch eine Schnittstelle, die zum Paket java.util gehört. Es erstreckt sich Iterator Schnittstelle. Es ermöglicht uns, die Liste entweder in Vorwärts- oder Rückwärtsreihenfolge zu durchlaufen. Die Vorwärtsiteration über die Liste bietet denselben Mechanismus wie der Iterator. Wir verwenden die Methoden next() und hasNext() der Iterator-Schnittstelle, um über die Liste zu iterieren.
IterateListExample4.java
import java.util.*; public class IterateListExample4 { public static void main(String args[]) { //defining a List List city = Arrays.asList('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //iterate List using the ListIterator ListIterator listIterator = city.listIterator(); while(listIterator.hasNext()) { //prints the elements of the List System.out.println(listIterator.next()); } } }
Ausgabe
Boston San Diego Las Vegas Houston Miami Austin
Java forEach-Methode
Iterable.forEach()
Die Iterable-Schnittstelle bietet die Methode forEach() zum Durchlaufen der Liste. Es ist seit Java 8 verfügbar. Es führt die angegebene Aktion für jedes Element aus, bis alle Elemente verarbeitet wurden oder die Aktion eine Ausnahme auslöst. Es akzeptiert auch Lambda-Ausdrücke als Parameter.
Syntax:
default void forEach(Consumer action)
Die Standardimplementierung verhält sich wie folgt:
for (T t : this) action.accept(t);
Es akzeptiert Aktion als Parameter, der ist nicht störend (bedeutet, dass die Datenquelle während der Ausführung der Stream-Pipeline überhaupt nicht geändert wird) Aktion, die für die Elemente ausgeführt werden soll. Es wirft NullPointerException wenn die angegebene Aktion null ist.
Der Verbraucher ist eine funktionale Schnittstelle, die als Zuweisungsziel für einen Lambda-Ausdruck oder eine Methodenreferenz verwendet werden kann. T ist die Art der Eingabe für die Operation. Es stellt eine Operation dar, die ein einzelnes Eingabeargument akzeptiert und kein Ergebnis zurückgibt.
IterateListExample5.java
import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //iterate List using forEach city.forEach(System.out::println); } }
Ausgabe
Boston San Diego Las Vegas Houston Miami Austin
Stream.forEach()
Mit der Java-Stream-Schnittstelle können wir die Listenwerte in einen Stream konvertieren. Mit Hilfe der Stream-Schnittstelle können wir auf Operationen wie forEach(), map() und filter() zugreifen.
Syntax:
void forEach(Consumer action)
Es akzeptiert Aktion als Parameter, der ist nicht störend (bedeutet, dass die Datenquelle während der Ausführung der Stream-Pipeline überhaupt nicht geändert wird) Aktion, die für die Elemente ausgeführt werden soll.
Der Verbraucher ist eine funktionale Schnittstelle, die als Zuweisungsziel für einen Lambda-Ausdruck oder eine Methodenreferenz verwendet werden kann. T ist die Art der Eingabe für die Operation. Es stellt eine Operation dar, die ein einzelnes Eingabeargument akzeptiert und kein Ergebnis zurückgibt.
IterateListExample5.java
import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList('Boston', 'San Diego', 'Las Vegas', 'Houston', 'Miami', 'Austin'); //iterate List using forEach loop city.stream().forEach((c) -> System.out.println(c)); } }
Ausgabe
Boston San Diego Las Vegas Houston Miami Austin