자바에서 for each 반복문은 어떻게 동작하나요?
조회수 2743회
List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
for (String item : someList) {
System.out.println(item);
}
for each문을 사용하지 않고 for문을 사용해서 동일하게 정의할 수 있나요?
1 답변
-
for(Iterator<String> i = someList.iterator(); i.hasNext(); ) { String item = i.next(); System.out.println(item); }
만약 반복문에서
i.remove();
를 사용하거나 실제iterator
에 접근하기를 원한다변for( : )
명령문은 사용할 수 없습니다.이 소스코드는
Iterable interface
를 구현한 어떠한 객체에 대해서도 동작 가능합니다.또한,
for( : )
문에서 오른쪽 입력이Itaerable
객체가 아닌array
이다면, 내부 소스코드는 int 타입의 인덱스 카운터를 사용해서 array.length를 체크합니다. 자바 스펙을 확인해보세요.
댓글 입력