- 무언가를 할 때 필요한 것이 원소 뿐이라면 인덱스 변수나 반복자들은 기능하는 곳 없이 오류 가능성을 높일 뿐이다.
그럴 때는 for-each 문을 사용하는 편이 낫다.
- 그러나 for-each 문을 사용할 수 없는 상황이 세 가지 존재한다.
- 파괴적인 필터링(destructive filtering) - 컬렉션을 순회하면서 그 컬렉션의 원소를 제거.
=> ConcurrentModificationException이 발생한다.
=> Collection의 removeIf 메서드를 사용
public boolean removeIf(Predicate<? super E> filter)
- 변형(transforming) - 리스트나 배열을 순회하면서 그 원소의 값 일부 혹은 전체를 교체.=> 인덱스를 알 수 없기 때문.
- 병렬 반복(parallel iteration) - 여러 컬렉션을 병렬로 순회해야 한다면 각자의 반복자와 인덱스 변수를 사용해 엄격하고 명시적으로 제어해야 한다.
'이펙티브 자바 > 9장 일반적인 프로그래밍 원칙' 카테고리의 다른 글
아이템 62 다른 타입이 적절하다면 문자열 사용을 피하라 (0) | 2023.12.13 |
---|---|
아이템 61 박싱된 기본 타입보다는 기본 타입을 사용하라 (0) | 2023.12.13 |
아이템 60 정확한 답이 필요하다면 float와 double은 피하라 (0) | 2023.12.13 |
아이템 59 라이브러리를 익히고 사용하라 (0) | 2023.12.12 |
아이템57 지역변수의 범위를 최소화하라 (1) | 2023.11.30 |