na Jawie, Lista jest interfejsem Ramy kolekcji . Zapewnia nam utrzymanie uporządkowanego zbioru obiektów. Klasy implementacji interfejsu List to ArrayList, LinkedList, Stos , I Wektor . ArrayList i LinkedList są szeroko stosowane w Jawa . W tej części się dowiemy jak iterować listę w Javie . W tej sekcji będziemy używać Lista tablic .
Java dla pętli
- Podstawowy dla pętli
- Ulepszona pętla
Iteratory Java
- Iterator
- ListIterator
Metoda Java dla każdej metody
- Iterowalna.forEach()
- Strumień.forEach()
Java dla pętli
Podstawowy dla pętli
Pętla Java for jest najczęstszą pętlą sterowania przepływem w iteracji. Pętla for zawiera zmienną, która pełni rolę numeru indeksu. Jest wykonywany, dopóki cała lista nie wykona iteracji.
Składnia:
nat vs łóżko
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('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();>
Ulepszona pętla
Działa podobnie do podstawowej pętli for. Jest kompaktowy, łatwy i czytelny. Jest szeroko stosowany do wykonywania przeglądania listy. Jest to łatwe w porównaniu do podstawowej pętli for.
Składnia:
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); } } }
Wyjście
Boston San Diego Las Vegas Houston Miami Austin
Iterator Javy
Iterator
Java udostępnia interfejs Iterator Do brzmieć nad kolekcjami, takimi jak List, Map itp. Zawiera dwie kluczowe metody next() i hasNaxt(), które pozwalają nam wykonać iterację po Liście.
Następny(): Metoda next() wykonuje iterację w kolejności do przodu. Zwraca następny element na liście. Rzuca Wyjątek NoSuchElement jeśli iteracja nie zawiera kolejnego elementu na liście. Metodę tę można wywoływać wielokrotnie w celu iteracji po liście lub mieszać ją z wywołaniami poprzedniej() w celu przechodzenia tam i z powrotem.
Składnia:
co to jest prolog
E next()
maNastępny(): Metoda hasNext() pomaga nam znaleźć ostatni element Listy. Sprawdza, czy lista zawiera następny element, czy nie. Jeśli metoda hasNext() pobierze element podczas przemieszczania się w kierunku do przodu, zwróci wartość true, w przeciwnym razie zwróci wartość false i zakończy wykonywanie.
Składnia:
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()); } } }
Wyjście
Boston San Diego Las Vegas Houston Miami Austin
ListIterator
ListIterator jest także interfejsem należącym do pakietu java.util. Rozciąga się Iterator interfejs. Pozwala nam iterować po liście w kolejności do przodu lub do tyłu. Iteracja do przodu po liście zapewnia ten sam mechanizm, jaki jest używany przez Iterator. Do iteracji po liście używamy metod next() i hasNext() interfejsu Iterator.
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()); } } }
Wyjście
... w Javie
Boston San Diego Las Vegas Houston Miami Austin
Metoda Java dla każdej metody
Iterowalna.forEach()
Interfejs Iterable udostępnia metodę forEach() umożliwiającą iterację po liście. Jest dostępny od wersji Java 8. Wykonuje określoną akcję dla każdego elementu, dopóki wszystkie elementy nie zostaną przetworzone lub akcja nie zgłosi wyjątku. Akceptuje również wyrażenia Lambda jako parametr.
Składnia:
default void forEach(Consumer action)
Domyślna implementacja zachowuje się następująco:
for (T t : this) action.accept(t);
Akceptuje działanie czyli jako parametr nieingerujący (oznacza, że źródło danych nie jest w ogóle modyfikowane podczas wykonywania potoku strumieniowego) akcja do wykonania na elementach. Rzuca Wyjątek NullPointer jeśli określona akcja ma wartość null.
The Konsument to interfejs funkcjonalny, którego można użyć jako celu przypisania dla wyrażenia lambda lub odwołania do metody. T jest typem danych wejściowych operacji. Reprezentuje operację, która akceptuje pojedynczy argument wejściowy i nie zwraca żadnego wyniku.
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); } }
Wyjście
klucz ins
Boston San Diego Las Vegas Houston Miami Austin
Strumień.forEach()
Interfejs Java Stream pozwala nam konwertować wartości Listy na strumień. Za pomocą interfejsu Stream możemy uzyskać dostęp do operacji takich jak forEach(), map() i filter().
Składnia:
void forEach(Consumer action)
Akceptuje działanie czyli jako parametr nieingerujący (oznacza, że źródło danych nie jest w ogóle modyfikowane podczas wykonywania potoku strumieniowego) akcja do wykonania na elementach.
The Konsument to interfejs funkcjonalny, którego można użyć jako celu przypisania dla wyrażenia lambda lub odwołania do metody. T jest typem danych wejściowych operacji. Reprezentuje operację, która akceptuje pojedynczy argument wejściowy i nie zwraca żadnego wyniku.
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)); } }
Wyjście
Boston San Diego Las Vegas Houston Miami Austin