logo

Kuinka iteroida luetteloa Javassa

Javalla, Lista on käyttöliittymä Keräyskehys . Sen avulla voimme ylläpitää tilattua esinekokoelmaa. List-rajapinnan toteutusluokat ovat ArrayList, LinkedList, Stack , ja Vektori . ArrayList ja LinkedList ovat laajalti käytössä Java . Tässä osiossa opimme kuinka iteroida luetteloa Javassa . Käytämme koko tämän osan ajan ArrayList .

Java for Loop

  1. Basic for Loop
  2. Enhanced for Loop

Java-iteraattorit

java-luetteloruutu
  1. Iteraattori
  2. ListIterator

Java jokaiselle menetelmälle

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

Java for Loop

Basic for Loop

Java silmukalle on yleisin iterointivirtauksen ohjaussilmukka. For-silmukka sisältää muuttujan, joka toimii indeksinumerona. Se suoritetaan, kunnes koko lista ei iteroidu.

Syntaksi:

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

Enhanced for Loop

Se on samanlainen kuin perussilmukka. Se on kompakti, helppolukuinen ja helppolukuinen. Sitä käytetään laajalti luettelon läpikäymiseen. Se on helppoa verrattuna basic for looppiin.

Syntaksi:

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

Lähtö

 Boston San Diego Las Vegas Houston Miami Austin 

Java Iterator

Iteraattori

Java tarjoaa käyttöliittymän Iteratorin to toistaa Kokoelmien yli, kuten List, Map jne. Se sisältää kaksi avainmenetelmää next() ja hasNaxt(), joiden avulla voimme suorittaa iteroinnin Listan yli.

Seuraava(): next()-menetelmä suorittaa iteroinnin eteenpäin järjestyksessä. Se palauttaa luettelon seuraavan elementin. Se heittää NoSuchElementException jos iteraatio ei sisällä listan seuraavaa elementtiä. Tätä menetelmää voidaan kutsua toistuvasti listan toistamiseksi, tai se voidaan sekoittaa edellisen()-kutsujen kanssa edestakaisin siirtymiseksi.

kat timpf paino

Syntaksi:

 E next() 

hasNext(): hasNext()-metodi auttaa meitä löytämään listan viimeisen elementin. Se tarkistaa, onko luettelossa seuraava elementti vai ei. Jos hasNext()-metodi saa elementin kulkeessaan eteenpäin, palauttaa true, muuten palauttaa false ja lopettaa suorituksen.

Syntaksi:

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

Lähtö

 Boston San Diego Las Vegas Houston Miami Austin 

ListIterator

ListIterator on myös käyttöliittymä, joka kuuluu java.util-pakettiin. Se ulottuu Iteraattori käyttöliittymä. Sen avulla voimme iteroida luetteloa joko eteen- tai taaksepäin järjestyksessä. Eteenpäin tapahtuva iteraatio listan yli tarjoaa saman mekanismin, jota Iteraattori käyttää. Käytämme Iterator-rajapinnan next()- ja hasNext()-metodeja iteroidaksemme listan yli.

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

Lähtö

 Boston San Diego Las Vegas Houston Miami Austin 

Java jokaiselle menetelmälle

Iterable.forEach()

Iterable-liittymä tarjoaa forEach()-menetelmän iteroitavaksi luettelon yli. Se on saatavilla Java 8:sta lähtien. Se suorittaa määritetyn toiminnon jokaiselle elementille, kunnes kaikki elementit on käsitelty tai toiminto aiheuttaa poikkeuksen. Se hyväksyy myös lambda-lausekkeet parametreina.

Syntaksi:

 default void forEach(Consumer action) 

Oletustoteutus toimii seuraavasti:

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

Se hyväksyy toiminta parametrina eli ei häiritse (tarkoittaa, että tietolähdettä ei muuteta lainkaan stream-liukuhihnan suorittamisen aikana) elementeille suoritettava toiminto. Se heittää NullPointerException jos määritetty toiminto on tyhjä.

The Kuluttaja on toiminnallinen rajapinta, jota voidaan käyttää osoituskohteena lambda-lausekkeelle tai menetelmäviittaukselle. T on toiminnon syötteen tyyppi. Se edustaa toimintoa, joka hyväksyy yhden syöteargumentin eikä palauta tulosta.

ehdokasavain

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

Lähtö

 Boston San Diego Las Vegas Houston Miami Austin 

Stream.forEach()

Java Stream -käyttöliittymän avulla voimme muuntaa List-arvot streamiksi. Stream-käyttöliittymän avulla voimme käyttää toimintoja, kuten forEach(), map() ja filter().

Syntaksi:

 void forEach(Consumer action) 

Se hyväksyy toiminta parametrina eli ei häiritse (tarkoittaa, että tietolähdettä ei muuteta lainkaan stream-liukuhihnan suorittamisen aikana) elementeille suoritettava toiminto.

The Kuluttaja on toiminnallinen rajapinta, jota voidaan käyttää osoituskohteena lambda-lausekkeelle tai menetelmäviittaukselle. T on toiminnon syötteen tyyppi. Se edustaa toimintoa, joka hyväksyy yhden syöteargumentin eikä palauta tulosta.

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

Lähtö

 Boston San Diego Las Vegas Houston Miami Austin