자바에서 for each 반복문은 어떻게 동작하나요?


List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
for (String item : someList) {
    System.out.println(item);
}

for each문을 사용하지 않고 for문을 사용해서 동일하게 정의할 수 있나요?

  • 2016년 05월 17일에 작성됨

조회수 154


1 답변


좋아요
0
싫어요
채택취소하기
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를 체크합니다. 자바 스펙을 확인해보세요.

  • 2016년 05월 18일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close