[Effective Java 3/e] 아이템 58 - 전통적인 for 문보다는 for-each 문을 사용하라


아이템 58 - 전통적인 for 문보다는 for-each 문을 사용하라

for-each 문의 장점

  • 반복자와 인덱스 변수를 사용하지 않아 코드가 깔끔해지고 오류가 날 일이 없다.
    • 중첩 된 for 문 사용 시 효과가 더 좋아짐

for-each 문을 사용할 수 없는 경우

  • 파괴적인 필터링 - 컬렉션을 순회하면서 선택된 원소를 제거하는 경우
    • 자바 8부터 removeIf 로 가능
  • 변형 - 컬렉션 원소의 값 일부 혹은 전체를 교체하는 경우
  • 병렬 반복 - 여러 컬렉션을 병렬로 순회해야 하면 각각의 반복자와 인덱스 변수를 사용해 제어해야 한다.

정리

  • for-each 문은 명료하고, 유연하고, 버그를 예방해주고, 성능 저하도 없다.
  • 가능한 모든 곳에 for 문이 아닌 for-each 문을 사용하자.