변경 루프 대신 컬렉션 일괄 연산
컬렉션을 직접 변환하려면 removeIf(), replaceAll(), List.sort()를 사용합니다.
코드 비교
✕ Iterator mutation loop
for (Iterator<Order> it = orders.iterator(); it.hasNext();) {
if (it.next().cancelled()) {
it.remove();
}
}
✓ Java 8+
orders.removeIf(Order::cancelled);
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
명확한 의도
반복 방법이 아니라 무엇을 변경하는지 연산 자체가 설명합니다.
더 안전한 변경
반복자에서 직접 제거할 때 지켜야 하는 규칙을 피합니다.
더 적은 코드
일반적인 변환이 하나의 표현식으로 줄어듭니다.
이전 방식
수동 반복자 제거
모던 방식
Collection.removeIf()
JDK 버전
8
난이도
초급
JDK 지원
변경 루프 대신 컬렉션 일괄 연산
사용 가능
JDK 8 (2014년 3월) 이후 사용 가능
동작 원리
모던 컬렉션 인터페이스는 일반적인 변경 연산을 직접 제공합니다. removeIf(), replaceAll(), List.sort() 같은 메서드는 제어 흐름이 복잡한 루프를 의도한 변환을 명시하는 연산으로 대체합니다.
관련 문서
증명