logo

Hur man itererar listan i Java

I Java, Lista är ett gränssnitt för Samlingsram . Det ger oss att upprätthålla den ordnade samlingen av objekt. Implementeringsklasserna för List-gränssnittet är ArrayList, LinkedList, Stack , och Vektor . ArrayList och LinkedList används ofta i Java . I det här avsnittet kommer vi att lära oss hur man itererar en lista i Java . I det här avsnittet kommer vi att använda ArrayList .

Java för Loop

  1. Grundläggande för Loop
  2. Förbättrad för Loop

Java Iterators

  1. Iterator
  2. ListIterator

Java för varje metod

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

Java för Loop

Grundläggande för Loop

Java för loop är den vanligaste flödeskontrollslingan för iteration. For-loopen innehåller en variabel som fungerar som ett indexnummer. Den körs tills hela listan inte itererar.

avl träd

Syntax:

 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();>

Förbättrad för Loop

Det liknar det grundläggande för loop. Den är kompakt, enkel och läsbar. Det används i stor utsträckning för att utföra traversering över listan. Det är enkelt i jämförelse med basic for loop.

Syntax:

 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); } } } 

Produktion

 Boston San Diego Las Vegas Houston Miami Austin 

Java Iterator

Iterator

Java tillhandahåller ett gränssnitt Iterator till iterera över samlingarna, såsom List, Map, etc. Den innehåller två nyckelmetoder next() och hasNaxt() som tillåter oss att utföra en iteration över listan.

Nästa(): Metoden next() utför iterationen i framåtriktad ordning. Det returnerar nästa element i listan. Det kastar NoSuchElementException om iterationen inte innehåller nästa element i listan. Denna metod kan anropas upprepade gånger för att iterera genom listan, eller blandas med anrop till previous() för att gå fram och tillbaka.

Syntax:

 E next() 

hasNext(): Metoden hasNext() hjälper oss att hitta det sista elementet i listan. Den kontrollerar om listan har nästa element eller inte. Om hasNext()-metoden får elementet under korsning i framåtriktningen, returnerar true, annars returnerar false och avslutar exekveringen.

Syntax:

 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()); } } } 

Produktion

 Boston San Diego Las Vegas Houston Miami Austin 

ListIterator

ListIterator är också ett gränssnitt som tillhör java.util-paketet. Den sträcker sig Iterator gränssnitt. Det tillåter oss att iterera över listan antingen i framåt- eller bakåtordning. Framåt iterationen över listan ger samma mekanism som används av iteratorn. Vi använder metoden next() och hasNext() i Iterator-gränssnittet för att iterera över listan.

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()); } } } 

Produktion

 Boston San Diego Las Vegas Houston Miami Austin 

Java för varje metod

Iterable.forEach()

Iterable-gränssnittet tillhandahåller metoden forEach() för att iterera över listan. Den är tillgänglig sedan Java 8. Den utför den angivna åtgärden för varje element tills alla element har bearbetats eller åtgärden ger ett undantag. Den accepterar också Lambda-uttryck som en parameter.

Syntax:

 default void forEach(Consumer action) 

Standardimplementeringen beter sig så här:

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

Det accepterar handling som en parameter dvs icke störande (betyder att datakällan inte modifieras alls under körningen av streampipeline) åtgärd att utföra på elementen. Det kastar NullPointerException om den angivna åtgärden är null.

De Konsument är ett funktionellt gränssnitt som kan användas som tilldelningsmål för ett lambdauttryck eller metodreferens. T är typen av indata till operationen. Den representerar en operation som accepterar ett enda inmatningsargument och inte returnerar något resultat.

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); } } 

Produktion

konvertera objekt till sträng
 Boston San Diego Las Vegas Houston Miami Austin 

Stream.forEach()

Java Stream-gränssnittet låter oss konvertera listvärdena till en stream. Med hjälp av Stream-gränssnittet kan vi komma åt operationer som forEach(), map() och filter().

Syntax:

 void forEach(Consumer action) 

Det accepterar handling som en parameter dvs icke störande (betyder att datakällan inte modifieras alls under exekveringen av streampipeline) åtgärd att utföra på elementen.

De Konsument är ett funktionellt gränssnitt som kan användas som tilldelningsmål för ett lambdauttryck eller metodreferens. T är typen av indata till operationen. Den representerar en operation som accepterar ett enda inmatningsargument och inte returnerar något resultat.

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)); } } 

Produktion

 Boston San Diego Las Vegas Houston Miami Austin