for each 구문 사용법
배열이나 Collection을 사용할 때 각 배열의 요소들이나 Collection의 요소들을 차례대로 방문해야 할 경우가 자주 있습니다. 주로 for문을 사용하게 되는데 가장 일반적인 for문의 형태가 다음과 같습니다.
이것을 확 줄여 놓은 것이 for each 구문이며 보통 아래와 같이 생겼습니다.
for(Type t : arrayName or collectionName)
먼저 배열을 사용하는 경우입니다.
public void arrayView(){
int[] numbers = {1, 2, 3, 4, 5};
StringBuilder sb = new StringBuilder();
for (int i = 0; i < numbers.length; i++)
sb.append(numbers[i]);
StringBuilder sb2 = new StringBuilder();
for (int i : numbers)
sb2.append(i);
assertEquals(sb.toString(), sb2.toString());
}
for 문을 사용할 때 보통 증감 연산에서 1씩 증가 시키면서 차례대로 배열의 모든 요소에 접근하는 경우에 아래와 같이 표현할 수 있습니다.
"numbers에 있는 모든 int 타입의 요소들에 대해서 차례대로" 라고 할 수 있습니다.
이번에는 콜렉션을 사용하는 경우입니다.
public void collectionView(){
List<Integer> numbers = new ArrayList<Integer>();
for (int i = 0; i < 5; i++)
numbers.add(i++);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < numbers.size(); i++)
sb.append(numbers.get(i));
StringBuilder sb2 = new StringBuilder();
for (int i : numbers)
sb2.append(i);
assertEquals(sb.toString(), sb2.toString());
}
배열을 사용할 때와 마찬가지로 해석할 수 있습니다. 지금 이 예제에서는 편의를 위해AutoBoxing, AutoUnBoxing 그리고 Generic도 사용되었습니다.