Java는 요소를 반복하는 새로운 메소드 forEach()를 제공합니다. Iterable 및 Stream 인터페이스에 정의되어 있습니다. Iterable 인터페이스에 정의된 기본 메서드입니다. Iterable 인터페이스를 확장하는 컬렉션 클래스는 forEach 루프를 사용하여 요소를 반복할 수 있습니다.
이 메소드는 기능적 인터페이스인 단일 매개변수를 사용합니다. 따라서 람다 식을 인수로 전달할 수 있습니다.
반복 가능한 인터페이스의 forEach() 서명
default void forEach(Consumeraction)
Java 8 forEach() 예제 1
import java.util.ArrayList; import java.util.List; public class ForEachExample { public static void main(String[] args) { List gamesList = new ArrayList(); gamesList.add('Football'); gamesList.add('Cricket'); gamesList.add('Chess'); gamesList.add('Hocky'); System.out.println('------------Iterating by passing lambda expression--------------'); gamesList.forEach(games -> System.out.println(games)); } }
산출:
------------Iterating by passing lambda expression-------------- Football Cricket Chess Hocky
Java 8 forEach() 예제 2
import java.util.ArrayList; import java.util.List; public class ForEachExample { public static void main(String[] args) { List gamesList = new ArrayList(); gamesList.add('Football'); gamesList.add('Cricket'); gamesList.add('Chess'); gamesList.add('Hocky'); System.out.println('------------Iterating by passing method reference---------------'); gamesList.forEach(System.out::println); } }
산출:
------------Iterating by passing method reference--------------- Football Cricket Chess Hocky
Java Stream forEachOrdered() 메서드
forEach() 메소드와 함께 Java는 forEachOrdered() 메소드를 하나 더 제공합니다. 스트림에 지정된 순서대로 요소를 반복하는 데 사용됩니다.
시그니처:
void forEachOrdered(Consumer action)
Java Stream forEachOrdered() 메서드 예
import java.util.ArrayList; import java.util.List; public class ForEachOrderedExample { public static void main(String[] args) { List gamesList = new ArrayList(); gamesList.add('Football'); gamesList.add('Cricket'); gamesList.add('Chess'); gamesList.add('Hocky'); System.out.println('------------Iterating by passing lambda expression---------------'); gamesList.stream().forEachOrdered(games -> System.out.println(games)); System.out.println('------------Iterating by passing method reference---------------'); gamesList.stream().forEachOrdered(System.out::println); } }
산출:
------------Iterating by passing lambda expression--------------- Football Cricket Chess Hocky ------------Iterating by passing method reference--------------- Football Cricket Chess Hocky