for-each 문은 성가신 코드를 제거하고 반복자나 첨자 변수를 오나전히 제거해서 오류 가능성을 없앤다.
보기와 같이 for문 사용에 비해 for-each문을 사용하는 것이 훨씬 간결해 보이고, 첨자변수에 대해 문제를 일으킬 걱정이 없다. for-each문의 장점은 여러 컬렉션이 중첩되는 순환문을 만들어야 할 때 더 빛난다.
for문으로 작성한 위의 코드를 for-each문을 사용하면 아래와 같이 간결해진다.
요약
for-each문은 전통적인 for문에 비해 명료하고 버그 발생 가능성도 적으며, 성능도 for문에 뒤지지 않는다. 그러니 가능하다면 항상 사용해야 한다. 그러나 아래와 같은 경우에는 for-each문을 사용할 수 없다.
- 필터링 - 컬렉션을 순회하다가 특정한 우너소를 삭제할 필요가 있을 때
- 변환 - 리스트나 배열을 순회하다가 그 원소 가운데 일부 또는 전체를 변경해야 할 때
- 병렬 순회 - 여러 컬렉션을 병렬적으로 순회해야 하고, 모든 반복자나 첨자 변수가 발맞춰 나아가도록 구현해야 할 때
'개발서적 > 이펙티브자바' 카테고리의 다른 글
[일반적인 프로그래밍 원칙들]규칙48. 정확한 답이 필요하다면 float과 double은 피하라 (0) | 2017.05.05 |
---|---|
[일반적인 프로그래밍 원칙들]규칙47. 어떤 라이브러리가 있는지 파악하고, 적절히 활용하라 (0) | 2017.05.05 |
[일반적인 프로그래밍 원칙들]규칙45. 지역 변수의 유효범위를 최소화하라 (0) | 2017.05.05 |
[메서드]규칙44. 모든 API 요소에 문서화 주석을 달라 (0) | 2017.05.05 |
[메서드]규칙43. null 대신 빈 배열이나 컬렉션을 반환하라 (0) | 2017.05.04 |