for-each문
배열과 컬렉션에 저장된 요소에 접근하기 할 때 기존보다 편리한 방법으로 처리할 수 있도록 for문의 새로운 문법이 추가되었다.
1. 배열
for(배열의 타입 변수명 : 배열){
// 반복할 문장
}
2. 컬렉션
for(컬렉션에 저장된 요소의 타입 변수명 : 컬렉션){
// 반복할 문장
}
3. 배열 예제
아래의 두 for문은 서로 동일하다.
int [] arr = {10, 20, 30, 40 50};
for(int i = 0; i<arr.length; i++;){
System.out.println(arr[i]);
}
for(int i : arr){// arr[i]가 아닌 i라는 것에 유의
System.out.println(i);
}
코드 해석: 반복문이 한 번 반복될 때마다 변수 e에 컬렉션 arr의 인덱스가 하나씩 저장되며, e에 저장된 원소와 한 칸의 공백을 출력한다. 반복은 배열의 인덱스 0부터 n-1까지 이루어진다. (배열 자체는 참조만 되기 때문에 변경되지 않음)
4. 컬렉션 예제
이제 ArrayList에 저장된 요소들에 접근하기 위해 for문을 사용한다면 다음과 같을 것이다.
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(new Integer(10));
list.add(new Integer(20));
list.add(new Integer(30));
list.add(new Integer(40));
Iterator it = list.iterator();
for(it.Iterator();){
System.out.println(it.next());
}
for(Integer i : list){
System.out.println(i);
}