logo

Java에서 목록을 반복하는 방법

자바에서는 목록 is는 다음의 인터페이스입니다. 수집 프레임워크 . 이는 순서가 지정된 개체 컬렉션을 유지 관리하는 기능을 제공합니다. List 인터페이스의 구현 클래스는 다음과 같습니다. ArrayList, LinkedList, 스택 , 그리고 벡터 . ArrayList와 LinkedList는 널리 사용됩니다. 자바 . 이 섹션에서는 다음 내용을 학습합니다. Java에서 목록을 반복하는 방법 . 이 섹션 전체에서 우리는 배열목록 .

루프용 자바

  1. 루프의 기본
  2. 향상된 for 루프

자바 반복자

  1. 반복자
  2. 목록반복자

Java forEach 메소드

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

루프용 자바

루프의 기본

자바 for 루프 반복을 위한 가장 일반적인 흐름 제어 루프입니다. for 루프에는 인덱스 번호 역할을 하는 변수가 포함되어 있습니다. 전체 목록이 반복되지 않을 때까지 실행됩니다.

통사론:

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

향상된 for 루프

기본 for 루프와 유사합니다. 작고, 쉽고, 읽기 쉽습니다. 목록을 순회하는 데 널리 사용됩니다. 기본 for 루프에 비해 쉽습니다.

통사론:

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

산출

 Boston San Diego Las Vegas Houston Miami Austin 

자바 반복자

반복자

Java는 인터페이스 Iterator를 제공합니다. 에게 반복하다 여기에는 List에 대한 반복을 수행할 수 있는 두 가지 주요 메서드 next() 및 hasNaxt()가 포함되어 있습니다.

다음(): next() 메소드는 순방향으로 반복을 수행합니다. 목록의 다음 요소를 반환합니다. 그것은 던진다 NoSuchElementException 반복에 목록의 다음 요소가 포함되어 있지 않은 경우. 이 메서드는 목록을 반복하기 위해 반복적으로 호출될 수도 있고, 앞뒤로 이동하기 위해 이전() 호출과 혼합될 수도 있습니다.

통사론:

 E next() 

해즈다음(): hasNext() 메소드는 List의 마지막 요소를 찾는 데 도움이 됩니다. List에 다음 요소가 있는지 확인합니다. hasNext() 메서드가 순방향으로 탐색하는 동안 요소를 가져오면 true를 반환하고, 그렇지 않으면 false를 반환하고 실행을 종료합니다.

순서대로

통사론:

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

산출

 Boston San Diego Las Vegas Houston Miami Austin 

목록반복자

ListIterator는 java.util 패키지에 속하는 인터페이스이기도 합니다. 확장됩니다 반복자 상호 작용. 이를 통해 목록을 정방향 또는 역순으로 반복할 수 있습니다. List에 대한 정방향 반복은 Iterator에서 사용되는 것과 동일한 메커니즘을 제공합니다. List를 반복하기 위해 Iterator 인터페이스의 next() 및 hasNext() 메소드를 사용합니다.

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

산출

자바의 메소드
 Boston San Diego Las Vegas Houston Miami Austin 

Java forEach 메소드

Iterable.forEach()

Iterable 인터페이스는 List를 반복하는 forEach() 메소드를 제공합니다. Java 8부터 사용할 수 있습니다. 모든 요소가 처리되거나 작업에서 예외가 발생할 때까지 각 요소에 대해 지정된 작업을 수행합니다. 또한 Lambda 표현식을 매개변수로 허용합니다.

통사론:

 default void forEach(Consumer action) 

기본 구현은 다음과 같이 동작합니다.

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

그것은 받아들인다 행동 매개변수로 방해하지 않는 (스트림 파이프라인 실행 중에 데이터 소스가 전혀 수정되지 않음을 의미) 요소에 대해 수행할 작업입니다. 그것은 던진다 NullPointer예외 지정된 작업이 null인 경우

그만큼 소비자 람다 식이나 메서드 참조에 대한 할당 대상으로 사용할 수 있는 기능적 인터페이스입니다. T는 작업에 대한 입력 유형입니다. 이는 단일 입력 인수를 허용하고 결과를 반환하지 않는 작업을 나타냅니다.

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

산출

 Boston San Diego Las Vegas Houston Miami Austin 

Stream.forEach()

Java Stream 인터페이스를 사용하면 목록 값을 스트림으로 변환할 수 있습니다. Stream 인터페이스의 도움으로 forEach(), map() 및 filter()와 같은 작업에 액세스할 수 있습니다.

통사론:

 void forEach(Consumer action) 

그것은 받아들인다 행동 매개변수로 방해하지 않는 (스트림 파이프라인 실행 중에 데이터 소스가 전혀 수정되지 않음을 의미) 요소에 대해 수행할 작업입니다.

그만큼 소비자 람다 식이나 메서드 참조에 대한 할당 대상으로 사용할 수 있는 기능적 인터페이스입니다. T는 작업에 대한 입력 유형입니다. 이는 단일 입력 인수를 허용하고 결과를 반환하지 않는 작업을 나타냅니다.

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

산출

 Boston San Diego Las Vegas Houston Miami Austin