더북(TheBook)

이 장의 핵심 내용을 정리하면 다음과 같다.

• 반복자Iterator는 특정 순회 전략을 내포하므로 효율적인 동시 실행을 방해한다.

• 컬렉션, 배열, 발생기generator, 반복자로부터 스트림을 생성할 수 있다.

• 요소를 선택하는 데 filter를 사용하고, 요소를 변환하는 데 map을 사용한다.

• 스트림을 변환하는 다른 연산으로는 limit, distinct, sorted가 있다.

• 스트림에서 결과를 얻으려면 count, max, min, findFirst 또는 findAny 같은 리덕션reduction 연산자를 사용한다. 이들 메서드 중 몇몇은 Optional 값을 리턴한다.

Optional 타입은 null 값을 다루는 안전한 대안을 목적으로 만들어졌다. Optional 타입을 안전하게 사용하려면 ifPresentorElse 메서드를 이용한다.

• 스트림 결과들을 컬렉션, 배열, 문자열 또는 맵으로 모을 수 있다.

Collectors 클래스의 groupingBypartitioningBy 메서드는 스트림의 내용을 그룹으로 분할하고, 각 그룹의 결과를 얻을 수 있게 해준다.

• 기본 타입인 int, long, double용으로 특화된 스트림이 있다.

• 병렬 스트림을 이용할 때는 부가 작용side effect을 반드시 피해야 하고, 순서 제약을 포기하는 방안도 고려한다.

• 스트림 라이브러리를 사용하려면 몇 가지 함수형 인터페이스와 친숙해져야 한다.

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