이 튜토리얼에서는 자바에서 ArrayList를 순회하는 다섯 가지 방법을 코드 예제와 함께 살펴봅니다. 특히 Java 8부터는 forEach 메서드와 Iterator 클래스를 활용해 컬렉션을 더욱 간결하게 반복 처리할 수 있습니다.
ArrayList 순회 방법 총정리
ArrayList를 반복 처리하는 대표적인 방법은 다음의 5가지입니다.
- 기본 for 문 (Classic For Loop)
- 향상된 for 문 (Advanced For Loop)
- Iterator
- while 문
- forEach 메서드 (Java 8)
먼저 예제에서 사용할 ArrayList를 생성하겠습니다.
import java.util.ArrayList;
import java.util.List;
public class LoopOverArrayExamples {
private List fruitBasket = new ArrayList<>(0);
public void addFruitsToBasket() {
fruitBasket.add("Apple");
fruitBasket.add("Banana");
fruitBasket.add("Pear");
fruitBasket.add("Mango");
}
}
- 자바에서 Map 순회하는 방법
- 자바에서 두 개의 ArrayList 비교하기
- 자바에서 리스트를 배열로 변환하는 방법
1. 기본 for 문 사용하기
가장 전통적인 방식으로, 인덱스를 직접 제어할 수 있어 특정 범위만 순회하거나 역순으로 접근해야 할 때 유용합니다.
for (int i=0; i<fruitBasket.size(); i++) {
System.out.println(fruitBasket.get(i));
}
2. 향상된 for 문 사용하기
인덱스 관리가 필요 없어 코드가 간결하고 가독성이 뛰어납니다. 단순히 모든 요소를 순회할 때 가장 널리 쓰이는 방식입니다.
for(String fruit : fruitBasket) {
System.out.println(fruit);
}
3. Iterator 사용하기
순회 중에 요소를 안전하게 삭제해야 하는 경우에 적합한 방법입니다. hasNext()로 요소 존재 여부를 확인하고 next()로 값을 가져옵니다.
Iterator fruitIterator = fruitBasket.iterator();
while (fruitIterator.hasNext()) {
System.out.println(fruitIterator.next());
}
4. while 문 사용하기
조건 기반 반복이 필요할 때 활용할 수 있으며, 기본 for 문과 동일하게 인덱스를 이용해 요소에 접근합니다.
int i = 0;
while (i < fruitBasket.size()) {
System.out.println(fruitBasket.get(i));
i++;
}
5. forEach 메서드 (Java 8)
Java 8에서 도입된 람다 표현식을 활용하면 한 줄 수준의 간결한 코드로 컬렉션을 순회할 수 있습니다.
fruitBasket.forEach( (fruit) ->
System.out.println(fruit)
);