더북(TheBook)

Stream 클래스의 정적 concat 메서드를 이용하면 두 스트림을 연결할 수 있다.


Stream<Character> combined = Stream.concat(

characterStream("Hello"), characterStream("World"));

// ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd'] 스트림을 돌려준다.

 

물론 첫 번째 스트림이 무한 스트림이면 안 된다(첫 번째가 무한 스트림이면 두 번째 스트림은 연결될 기회를 얻지 못한다).

 

<Tip>

peek 메서드는 원본과 동일한 요소들을 포함하는 다른 스트림을 돌려주지만, 전달받은 함수를 요소 추출 시마다 호출한다. 따라서 디버깅을 수행할 때 유용하다.

 

Object[] powers = Stream.iterate(1.0, p -> p * 2)

.peek(e -> System.out.println("Fetching " + e))

.limit(20).toArray();

 

요소를 실제 접근할 때마다 메시지를 출력한다. 이 방법으로 iterate 메서드가 리턴하는 무한 스트림이 지연 처리됨을 확인할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.