아이템 58. 전통적인 for 문보다는 for each 문을 사용하라 - KwangtaekJung/book-effective-java GitHub Wiki

  • for-each

  • 컬렉션과 배열 뿐 아니라 Iterable 인터페이스를 구현한 객체라면 무엇이든 순회할 수 있다.

  • 명료하고 유연하고, 버그를 예방해준다. 성능 저하도 없다.

    • 반복자, 인덱스 사용을 줄이고 컬렉션이나 배열에 관계 없이 사용할 수 있는 이점이 있다.
    • 컬렉션을 중첩하여 순회해야 할 때 더 유리하다.
    • for-each 문을 사용할 수 없는 상황
      • 파괴적인 필터링(destructive filtering): 컬렉션을 순회하면서 선택된 원소를 삭제해야 할 때
      • 변형(transforming): 리스트나 배열을 순회하면서 그 원소의 값 일부 혹은 전체를 교체해야 할 때
      • 병렬 반복(parallel iteration): 여러 컬렉션을 병렬로 순회해야 할 때