Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9에서 Stream API의 iterate() 메소드의 중요성?


자바 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]