Op Java, Lijst is een interface van de Collectiekader . Het stelt ons in staat de geordende verzameling objecten te behouden. De implementatieklassen van de List-interface zijn ArrayList, LinkedList, Stapel , En Vector . De ArrayList en LinkedList worden veel gebruikt in Java . In dit gedeelte zullen we leren hoe een lijst in Java te herhalen . In dit gedeelte zullen we gebruiken ArrayLijst .
Java voor lus
Hoe een string naar een int te converteren
- Basis voor lus
- Verbeterd voor lus
Java-iteratoren
- Iterator
- LijstIterator
Java voor elke methode
- Itereerbaar.forEach()
- Stream.forEach()
Java voor lus
Basis voor lus
Java voor lus is de meest voorkomende stroomregellus voor iteratie. De for-lus bevat een variabele die als indexnummer fungeert. Het wordt uitgevoerd totdat de hele lijst niet itereert.
Syntaxis:
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();>
Verbeterd voor lus
Het is vergelijkbaar met de basis for-lus. Het is compact, gemakkelijk en leesbaar. Het wordt veel gebruikt om de lijst te doorlopen. Het is gemakkelijk in vergelijking met de standaard for-loop.
Syntaxis:
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); } } }
Uitvoer
Boston San Diego Las Vegas Houston Miami Austin
Java-iterator
Iterator
Java biedt een interface-Iterator naar herhalen over de collecties, zoals Lijst, Kaart, enz. Het bevat twee belangrijke methoden next() en hasNaxt() waarmee we een iteratie over de Lijst kunnen uitvoeren.
volgende(): De next()-methode voert de iteratie in voorwaartse volgorde uit. Het retourneert het volgende element in de lijst. Het gooit NoSuchElementException als de iteratie niet het volgende element in de lijst bevat. Deze methode kan herhaaldelijk worden aangeroepen om de lijst te doorlopen, of worden gemengd met aanroepen van previous() om heen en weer te gaan.
Syntaxis:
E next()
heeftVolgende(): De methode hasNext() helpt ons het laatste element van de lijst te vinden. Het controleert of de lijst het volgende element bevat of niet. Als de hasNext()-methode het element ophaalt tijdens het doorlopen in de voorwaartse richting, retourneert true, retourneert anders false en beëindigt de uitvoering.
Syntaxis:
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()); } } }
Uitvoer
Boston San Diego Las Vegas Houston Miami Austin
LijstIterator
De ListIterator is ook een interface die deel uitmaakt van het java.util-pakket. Het strekt zich uit Iterator koppel. Hiermee kunnen we de lijst in voorwaartse of achterwaartse volgorde doorlopen. De voorwaartse iteratie over de lijst biedt hetzelfde mechanisme als gebruikt door de Iterator. We gebruiken de methoden next() en hasNext() van de Iterator-interface om de lijst te doorlopen.
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()); } } }
Uitvoer
Boston San Diego Las Vegas Houston Miami Austin
Java voor elke methode
Itereerbaar.forEach()
De itereerbare interface biedt de methode forEach() om de lijst te doorlopen. Het is beschikbaar sinds Java 8. Het voert de opgegeven actie uit voor elk element totdat alle elementen zijn verwerkt of de actie een uitzondering genereert. Het accepteert ook Lambda-expressies als parameter.
Syntaxis:
default void forEach(Consumer action)
De standaardimplementatie gedraagt zich als volgt:
for (T t : this) action.accept(t);
Het accepteert actie als parameter dus niet-inmengend (betekent dat de gegevensbron helemaal niet wordt gewijzigd tijdens de uitvoering van de stroompijplijn) actie die op de elementen moet worden uitgevoerd. Het gooit NullPointerException als de opgegeven actie nul is.
lees het csv-bestand in Java
De Klant is een functionele interface die kan worden gebruikt als toewijzingsdoel voor een lambda-expressie of methodereferentie. T is het type invoer voor de bewerking. Het vertegenwoordigt een bewerking die één invoerargument accepteert en geen resultaat retourneert.
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); } }
Uitvoer
Boston San Diego Las Vegas Houston Miami Austin
Stream.forEach()
Met de Java Stream-interface kunnen we de lijstwaarden omzetten in een stream. Met behulp van de Stream-interface hebben we toegang tot bewerkingen zoals forEach(), map() en filter().
Syntaxis:
void forEach(Consumer action)
Het accepteert actie als parameter dus niet-inmengend (betekent dat de gegevensbron helemaal niet wordt gewijzigd tijdens de uitvoering van de stroompijplijn) actie die op de elementen moet worden uitgevoerd.
De Klant is een functionele interface die kan worden gebruikt als toewijzingsdoel voor een lambda-expressie of methodereferentie. T is het type invoer voor de bewerking. Het vertegenwoordigt een bewerking die één invoerargument accepteert en geen resultaat retourneert.
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)); } }
Uitvoer
Boston San Diego Las Vegas Houston Miami Austin