# for-each 루프문
자바 1.5 배포판 이후에 제공하는 for-each 루프는 순환자나 인덱스 변수를 감춤으로써
에러의 가능성을 제거시켜준다.
// AS-IS :
for (int i = 0; i < a.length; i++) {
doSomething(a[i]);
}
// TO-BE :
for (Element e : elements) {
doSomething(e);
}
성능의 저하는 없고, 코드가 깔끔하게 바뀌기 때문에 가독성이 좋아진다.
for-each 루프는 컬렉션과 배열에 대한 반복 처리는 물론 모든 iterator 객체에서 사용 가능하다.
하지만 인덱스를 반드시 써야 하는 상황에서는 for-each를 사용할 수 없다.
(예 : 필터링, 변환, 병행반복처리)
public Map createMapForMock(String … keys) {
Map resultMap = new HashMap();
Map exampleMap = getExampleMap();
for (String key : keys) {
resultMap.put(key, exampleMap.get(key));
}
return resultMap;
}
출처 : Head First Java, Effective Java, 인터넷