아이템 58. 전통적인 for 문보다는 for each 문을 사용하라 - KwangtaekJung/book-effective-java GitHub Wiki
-
for-each
-
컬렉션과 배열 뿐 아니라 Iterable 인터페이스를 구현한 객체라면 무엇이든 순회할 수 있다.
-
명료하고 유연하고, 버그를 예방해준다. 성능 저하도 없다.
- 반복자, 인덱스 사용을 줄이고 컬렉션이나 배열에 관계 없이 사용할 수 있는 이점이 있다.
- 컬렉션을 중첩하여 순회해야 할 때 더 유리하다.
- for-each 문을 사용할 수 없는 상황
- 파괴적인 필터링(destructive filtering): 컬렉션을 순회하면서 선택된 원소를 삭제해야 할 때
- 변형(transforming): 리스트나 배열을 순회하면서 그 원소의 값 일부 혹은 전체를 교체해야 할 때
- 병렬 반복(parallel iteration): 여러 컬렉션을 병렬로 순회해야 할 때