자바 8에서 iterate() Stream API 메소드 시드를 얻습니다. 및 단항 연산자 인수로. 스트림이 무한해지면 개발자가 명시적 을 추가하게 됩니다. 해지 조건 limit, findFirst, findAny 등을 사용하여 Java 9에서 iterate() 스트림 방법 API 새 인수인 술어 를 추가했습니다. 흐름을 끊는 조건이 필요합니다.
구문
static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)
예시
import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.List; public class StreamIterateMethodTest { public static void main(String args[]) { List<Integer> numbers1 = Stream.iterate(1, i -> i+1) // with two arguments .limit(10) .collect(Collectors.toList()); System.out.println("In Java 8:" + numbers1); List<Integer> numbers2 = Stream.iterate(1, i -> i <= 10, i -> i+1) // with three arguments .collect(Collectors.toList()); System.out.println("In Java 9:" + numbers2); } }
출력
In Java 8:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] In Java 9:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]