A Java, Llista és una interfície de Marc de la col·lecció . Ens permet mantenir la col·lecció ordenada d'objectes. Les classes d'implementació de la interfície List són ArrayList, LinkedList, Stack , i Vector . ArrayList i LinkedList s'utilitzen àmpliament Java . En aquest apartat, aprendrem com repetir una llista en Java . Al llarg d'aquesta secció, utilitzarem ArrayList .
Java per a bucle
- Bàsic per a Loop
- Millora per a Loop
Iteradors de Java
- Iterador
- ListIterator
Java per a cada mètode
- Iterable.forEach()
- Stream.forEach()
Java per a bucle
Bàsic per a Loop
Java per bucle és el bucle de control de flux més comú per a la iteració. El bucle for conté una variable que actua com a número d'índex. S'executa fins que no s'itera tota la llista.
Sintaxi:
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();>
Millora per a Loop
És similar al bucle for bàsic. És compacte, fàcil i llegible. S'utilitza àmpliament per dur a terme un recorregut per la llista. És fàcil en comparació amb el bucle for bàsic.
Sintaxi:
for(data_type variable : array | collection) { //body of the loop }
IterateListExample2.java
S'ha inserit la targeta SIM però no hi ha servei Android
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); } } }
Sortida
Boston San Diego Las Vegas Houston Miami Austin
Iterador de Java
Iterador
Java proporciona un iterador d'interfície a iterar sobre les Col·leccions, com ara Llista, Mapa, etc. Conté dos mètodes clau next() i hasNaxt() que ens permeten realitzar una iteració sobre la Llista.
Pròxim(): El mètode next() realitza la iteració en ordre endavant. Retorna el següent element de la llista. Es tira NoSuchElementException si la iteració no conté el següent element de la llista. Aquest mètode es pot cridar repetidament per iterar per la llista, o barrejar-se amb crides a previous() per anar i tornar.
Sintaxi:
E next()
hasNext(): El mètode hasNext() ens ajuda a trobar l'últim element de la llista. Comprova si la llista té el següent element o no. Si el mètode hasNext() obté l'element durant el recorregut en la direcció cap endavant, retorna true, en cas contrari retorna fals i finalitza l'execució.
Sintaxi:
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()); } } }
Sortida
Boston San Diego Las Vegas Houston Miami Austin
ListIterator
El ListIterator també és una interfície que pertany al paquet java.util. S'estén Iterador interfície. Ens permet recórrer la llista en ordre cap endavant o cap enrere. La iteració cap endavant sobre la llista proporciona el mateix mecanisme que l'utilitza l'iterador. Utilitzem el mètode next() i hasNext() de la interfície Iterator per iterar sobre la llista.
IterateListExample4.java
arquitectura rusc
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()); } } }
Sortida
Boston San Diego Las Vegas Houston Miami Austin
Java per a cada mètode
Iterable.forEach()
La interfície iterable proporciona el mètode forEach() per iterar sobre la llista. Està disponible des de Java 8. Realitza l'acció especificada per a cada element fins que s'han processat tots els elements o l'acció genera una excepció. També accepta expressions Lambda com a paràmetre.
Sintaxi:
default void forEach(Consumer action)
La implementació per defecte es comporta com:
for (T t : this) action.accept(t);
Accepta acció com a paràmetre és a dir no interferir (significa que la font de dades no es modifica en absolut durant l'execució de la canalització de flux) acció a realitzar en els elements. Es tira NullPointerException si l'acció especificada és nul·la.
definir ordinador
El Consumidor és una interfície funcional que es pot utilitzar com a objectiu d'assignació d'una expressió lambda o referència de mètode. T és el tipus d'entrada a l'operació. Representa una operació que accepta un sol argument d'entrada i no retorna cap resultat.
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); } }
Sortida
Boston San Diego Las Vegas Houston Miami Austin
Stream.forEach()
La interfície Java Stream ens permet convertir els valors de la llista en un flux. Amb l'ajuda de la interfície Stream podem accedir a operacions com forEach(), map() i filter().
Sintaxi:
void forEach(Consumer action)
Accepta acció com a paràmetre és a dir no interferir (significa que la font de dades no es modifica en absolut durant l'execució de la canalització de flux) acció a realitzar en els elements.
El Consumidor és una interfície funcional que es pot utilitzar com a objectiu d'assignació d'una expressió lambda o referència de mètode. T és el tipus d'entrada a l'operació. Representa una operació que accepta un sol argument d'entrada i no retorna cap resultat.
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)); } }
Sortida
Boston San Diego Las Vegas Houston Miami Austin