더북(TheBook)

04
서브스트림 추출과 스트림 결합

stream.limit(n) 호출은 n개 요소 이후(원본 스트림이 n보다 짧은 경우는 원본 스트림이 끝날 때) 끝나는 새로운 스트림을 리턴한다. 이 메서드는 무한 스트림을 필요한 크기로 잘라낼 때 특히 유용하다. 예를 들어, 다음은 난수 100개를 포함하는 스트림을 돌려준다.


Stream<Double> randoms = Stream.generate(Math::random).limit(100);


 

stream.skip(n) 호출은 반대 작업을 수행한다. 즉, 처음 n개 요소를 버린다. 이 장에서 다루는 책 읽기 예제에서 이 메서드를 유용하게 사용할 수 있는데, 예제에서는 split 메서드가 동작하는 방식 때문에 첫 번째 요소가 불필요한 빈 문자열이다. 다음과 같이 skip을 호출하면 불필요한 첫 번째 요소를 사라지게 할 수 있다.


Stream<String> words = Stream.of(contents.split(”[\P{L}]+“)).skip(1);


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