Streams 초급

스트림 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
난이도
초급
스트림 takeWhile / dropWhile
사용 가능

JDK 9 (2017년 9월) 이후 널리 사용 가능

takeWhile()은 조건자가 참인 동안 요소를 반환하고 실패 시 중지합니다. dropWhile()은 조건자가 참인 동안 요소를 건너뛰고 나머지를 반환합니다.

공유 𝕏 🦋 in