I Java, Liste er en grænseflade af Indsamlingsramme . Det giver os mulighed for at opretholde den ordnede samling af objekter. Implementeringsklasserne for List-grænsefladen er ArrayList, LinkedList, Stack , og Vektor . ArrayList og LinkedList er meget udbredt i Java . I dette afsnit vil vi lære hvordan man itererer en liste i Java . I hele dette afsnit vil vi bruge ArrayList .
Java til loop
sortering i arraylist i java
- Grundlæggende til Loop
- Forbedret til Loop
Java iteratorer
- Iterator
- ListIterator
Java for hver metode
- Iterable.forEach()
- Stream.forEach()
Java til loop
Grundlæggende til Loop
Java til loop er den mest almindelige flowkontrolsløjfe til iteration. For-løkken indeholder en variabel, der fungerer som et indeksnummer. Det udføres, indtil hele listen ikke itererer.
Syntaks:
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();>
Forbedret til Loop
Det ligner det grundlæggende for loop. Den er kompakt, nem og læsbar. Det bruges i vid udstrækning til at udføre traversering over listen. Det er nemt i forhold til basic for loop.
Syntaks:
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); } } }
Produktion
Boston San Diego Las Vegas Houston Miami Austin
Java Iterator
Iterator
Java giver en interface Iterator til gentage over samlingerne, såsom List, Map, osv. Den indeholder to nøglemetoder next() og hasNaxt(), der giver os mulighed for at udføre en iteration over Listen.
hvordan man får den aktuelle dato i java
Næste(): Next()-metoden udfører iterationen i fremadgående rækkefølge. Det returnerer det næste element i listen. Det kaster NoSuchElementException hvis iterationen ikke indeholder det næste element i listen. Denne metode kan kaldes gentagne gange for at iterere gennem listen, eller blandes med kald til previous() for at gå frem og tilbage.
Syntaks:
E next()
hasNext(): hasNext()-metoden hjælper os med at finde det sidste element i listen. Den kontrollerer, om listen har det næste element eller ej. Hvis metoden hasNext() får elementet under traversering i fremadgående retning, returnerer sand, ellers returnerer falsk og afslutter udførelsen.
.næste java
Syntaks:
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()); } } }
Produktion
Boston San Diego Las Vegas Houston Miami Austin
ListIterator
ListIterator er også en grænseflade, der hører til java.util-pakken. Det strækker sig Iterator interface. Det giver os mulighed for at iterere over listen enten i fremadgående eller bagudgående rækkefølge. Fremadgående iteration over listen giver den samme mekanisme, som bruges af iteratoren. Vi bruger metoden next() og hasNext() i Iterator-grænsefladen til at iterere over listen.
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()); } } }
Produktion
Boston San Diego Las Vegas Houston Miami Austin
Java for hver metode
Iterable.forEach()
Iterable-grænsefladen giver forEach()-metoden til at iterere over listen. Det er tilgængeligt siden Java 8. Det udfører den specificerede handling for hvert element, indtil alle elementer er blevet behandlet, eller handlingen kaster en undtagelse. Den accepterer også Lambda-udtryk som en parameter.
streng ind i array java
Syntaks:
default void forEach(Consumer action)
Standardimplementeringen opfører sig som:
for (T t : this) action.accept(t);
Det accepterer handling som en parameter, dvs ikke forstyrrende (betyder, at datakilden slet ikke ændres under udførelsen af stream-pipelinen) handling til at udføre på elementerne. Det kaster NullPointerException hvis den angivne handling er null.
Det Forbruger er en funktionel grænseflade, der kan bruges som tildelingsmål for et lambda-udtryk eller en metodereference. T er typen af input til operationen. Det repræsenterer en operation, der accepterer et enkelt input-argument og ikke returnerer noget 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); } }
Produktion
fizzbuzz java
Boston San Diego Las Vegas Houston Miami Austin
Stream.forEach()
Java Stream-grænsefladen giver os mulighed for at konvertere listeværdierne til en strøm. Ved hjælp af Stream-grænsefladen kan vi få adgang til operationer som forEach(), map() og filter().
Syntaks:
void forEach(Consumer action)
Det accepterer handling som en parameter, dvs ikke forstyrrende (betyder, at datakilden slet ikke ændres under udførelsen af stream-pipelinen) handling til at udføre på elementerne.
Det Forbruger er en funktionel grænseflade, der kan bruges som tildelingsmål for et lambda-udtryk eller en metodereference. T er typen af input til operationen. Det repræsenterer en operation, der accepterer et enkelt input-argument og ikke returnerer noget 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)); } }
Produktion
Boston San Diego Las Vegas Houston Miami Austin