스트림 takeWhile / dropWhile
조건자를 기반으로 스트림에서 요소를 가져오거나 제거합니다.
코드 비교
✕ Java 8
List<Integer> result = new ArrayList<>();
for (int n : sorted) {
if (n >= 100) break;
result.add(n);
}
// no stream equivalent in Java 8
✓ Java 9+
var result = sorted.stream()
.takeWhile(n -> n < 100)
.toList();
// or: .dropWhile(n -> n < 10)
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
단락 평가
조건자가 실패하는 즉시 처리를 중지합니다.
파이프라인 친화적
다른 스트림 연산과 자연스럽게 체이닝됩니다.
선언적
takeWhile은 영어처럼 읽힙니다: '100보다 작은 동안 가져오기'.
이전 방식
수동 루프
모던 방식
takeWhile/dropWhile
JDK 버전
9
난이도
초급
JDK 지원
스트림 takeWhile / dropWhile
사용 가능
JDK 9 (2017년 9월) 이후 널리 사용 가능
동작 원리
takeWhile()은 조건자가 참인 동안 요소를 반환하고 실패 시 중지합니다. dropWhile()은 조건자가 참인 동안 요소를 건너뛰고 나머지를 반환합니다.
관련 문서