logo

Hogyan iteráljunk listát Java-ban

Java nyelven, Lista az egy interfész a Gyűjteményi keret . Ez biztosítja számunkra a rendezett tárgygyűjtemény karbantartását. A List interfész megvalósítási osztályai a következők ArrayList, LinkedList, Stack , és Vektor . Az ArrayList és a LinkedList széles körben használatos Jáva . Ebben a részben megtanuljuk hogyan iteráljunk egy listát Java nyelven . Ebben a részben azt fogjuk használni Tömb lista .

Java for Loop

  1. Alap a Loop számára
  2. Továbbfejlesztve a Loop számára

Java iterátorok

  1. Iterátor
  2. ListIterator

Java forEach Method

  1. Iterable.forEach()
  2. Stream.forEach()

Java for Loop

Alap a Loop számára

Java for ciklus a leggyakoribb áramlásszabályozó hurok az iterációhoz. A for ciklus tartalmaz egy változót, amely indexszámként működik. Addig fut, amíg a teljes lista nem ismétlődik.

Szintaxis:

 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(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //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(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //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(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //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(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //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(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //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(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach loop city.stream().forEach((c) -&gt; System.out.println(c)); } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <hr></city.size();>

Továbbfejlesztve a Loop számára

Hasonló az alap for ciklushoz. Kompakt, könnyen olvasható és olvasható. Széles körben használják a listán való átjárás végrehajtására. Egyszerű az alap for ciklushoz képest.

Szintaxis:

 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(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iteration over List using enhanced for loop for (String cities : city) { //prints the elements of the List System.out.println(cities); } } } 

Kimenet

 Boston San Diego Las Vegas Houston Miami Austin 

Java Iterator

Iterátor

A Java interfész Iterátort biztosít nak nek hajtogat A gyűjtemények felett, mint például a Lista, a Térkép stb. Két kulcsmetódusot tartalmaz next() és hasNaxt(), amelyek lehetővé teszik számunkra, hogy iterációt hajtsunk végre a listán.

következő(): A next() metódus előremutató sorrendben hajtja végre az iterációt. A Lista következő elemét adja vissza. Ez dob NoSuchElementException ha az iteráció nem tartalmazza a Lista következő elemét. Ez a metódus ismételten meghívható a lista végigjátszásához, vagy összekeverhető a previous() hívásokkal az oda-vissza lépéshez.

Szintaxis:

 E next() 

hasNext(): A hasNext() metódus segít megtalálni a Lista utolsó elemét. Ellenőrzi, hogy a listában van-e a következő elem vagy sem. Ha a hasNext() metódus megkapja az elemet az előrehaladás során, akkor true értéket ad vissza, egyébként false értéket ad vissza, és leállítja a végrehajtást.

Szintaxis:

 boolean hasNext() 

IterateListExample3.java

 import java.util.*; public class IterateListExample3 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using enhances for loop Iterator cityIterator = city.iterator(); //iterator over List using while loop while(cityIterator.hasNext()) { System.out.println(cityIterator.next()); } } } 

Kimenet

 Boston San Diego Las Vegas Houston Miami Austin 

ListIterator

A ListIterator is egy interfész, amely a java.util csomaghoz tartozik. Kiterjed Iterátor felület. Lehetővé teszi számunkra, hogy előre vagy hátra sorrendben ismételjük a listát. A Listán keresztüli továbbítási iteráció ugyanazt a mechanizmust biztosítja, mint az Iterátor. Az Iterator interfész next() és hasNext() metódusát használjuk a Listán való iterációhoz.

IterateListExample4.java

 import java.util.*; public class IterateListExample4 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using the ListIterator ListIterator listIterator = city.listIterator(); while(listIterator.hasNext()) { //prints the elements of the List System.out.println(listIterator.next()); } } } 

Kimenet

 Boston San Diego Las Vegas Houston Miami Austin 

Java forEach Method

Iterable.forEach()

Az Iterable felület biztosítja a forEach() metódust a Listán való iterációhoz. Java 8 óta elérhető. Minden elemnél végrehajtja a megadott műveletet mindaddig, amíg az összes elemet fel nem dolgozták, vagy a művelet kivételt nem dob. A Lambda kifejezéseket is elfogadja paraméterként.

Szintaxis:

 default void forEach(Consumer action) 

Az alapértelmezett megvalósítás a következőképpen viselkedik:

 for (T t : this) action.accept(t); 

Elfogadja akció olyan paraméterként, amely az nem zavaró (azt jelenti, hogy az adatforrás egyáltalán nem módosul a folyami folyamat végrehajtása során) műveletet kell végrehajtani az elemeken. Ez dob NullPointerException ha a megadott művelet nulla.

A Fogyasztó egy funkcionális interfész, amely egy lambda-kifejezés vagy metódushivatkozás hozzárendelési célpontjaként használható. T a művelet bemeneti típusa. Olyan műveletet jelent, amely egyetlen bemeneti argumentumot fogad el, és nem ad vissza eredményt.

np.nullák

IterateListExample5.java

 import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach city.forEach(System.out::println); } } 

Kimenet

 Boston San Diego Las Vegas Houston Miami Austin 

Stream.forEach()

A Java Stream felület lehetővé teszi számunkra, hogy a Lista értékeket folyammá alakítsuk. A Stream felület segítségével olyan műveleteket érhetünk el, mint a forEach(), a map(), és a filter().

Szintaxis:

 void forEach(Consumer action) 

Elfogadja akció olyan paraméterként, amely az nem zavaró (azt jelenti, hogy az adatforrás egyáltalán nem módosul a folyami folyamat végrehajtása során) műveletet kell végrehajtani az elemeken.

A Fogyasztó egy funkcionális interfész, amely egy lambda-kifejezés vagy metódushivatkozás hozzárendelési célpontjaként használható. T a művelet bemeneti típusa. Olyan műveletet jelent, amely egyetlen bemeneti argumentumot fogad el, és nem ad vissza eredményt.

IterateListExample5.java

 import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach loop city.stream().forEach((c) -&gt; System.out.println(c)); } } 

Kimenet

 Boston San Diego Las Vegas Houston Miami Austin