728x90
for-each란?
for-each는 JDK 1.5 버전부터 추가된 반복문으로, 배열뿐만 아니라 Collection 인터페이스를 구현한 모든 자료구조에 사용할 수 있는 반복문입니다. 배열과 리스트뿐만 아니라 Set, Map과 같은 컬렉션에서도 간단히 사용 가능합니다.
예제 코드
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
// 일반적인 for문
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println("\n---------------------------");
// for-each
for (int value : arr) {
System.out.print(value + " ");
}
System.out.println("\n---------------------------");
// 컬렉션에서의 for-each
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("cherry");
for (String fruit : list) {
System.out.print(fruit + " ");
}
}
}
위 예제에서 보듯, for-each는 첫 번째 요소부터 마지막 요소까지 순차적으로 접근합니다.
장점
코드 간결성이 좋아집니다.
- 반복문의 조건, 증감, 배열 크기 등을 신경 쓸 필요 없이 간단히 요소를 순회할 수 있습니다.
가독성이 향상됩니다.
- for-each는 읽기 전용 작업이나 순차적 순회에 적합하며, 가독성이 높습니다.
제약사항
순차 접근만 가능합니다
- 인덱스를 명시적으로 사용할 수 없으므로, 특정 요소를 건너뛰거나 특정 인덱스만 처리하는 작업에 적합하지 않습니다.
- 예를 들어, 짝수 번째 요소만 처리하려면 일반 for 루프를 사용해야 합니다.
요소 수정에 제약
- index를 사용하지 않기에 배열, 컬렉션을 변경하기 어렵습니다.
- 변경을 하고 싶다면 따로 변수를 할당하여 해당 값을 관리해주어야 하지만 그렇게 된다면 for문을 사용해야 합니다.
언제 쓰면 좋을까?
- 목적이 명확할 때: 단순히 각 요소를 읽어 특정 작업(출력, 합산 등)을 수행할 때.
- 읽기 작업이 주된 경우: 데이터 순회를 통해 값을 확인하거나 처리할 때.
언제 쓰면 안될까?
- 특정 요소를 건너뛰거나 인덱스를 관리해야 할 때.
- 요소의 값을 변경해야 할 때
결론
for-each는 첫 번째 요소부터 마지막 요소까지 순차적으로 접근하고, 데이터를 읽거나 사용하는 데 적합한 반복문입니다. 다만, 인덱스를 직접 관리하거나 컬렉션을 변경해야 하는 상황에서는 적합하지 않습니다.
for-each는 간결한 코드와 가독성을 제공하지만, 상황에 맞게 적절히 사용하는 것이 중요합니다.
728x90
'Java' 카테고리의 다른 글
[Java] String, StringBuffer, StringBuilder 차이점 (1) | 2025.01.03 |
---|---|
[Java] 인스턴스 내부 클래스 (0) | 2024.12.05 |
[Java] 리스트 인터페이스 구현 (3) | 2024.11.26 |
[Java] 1급 커넥션 (0) | 2024.10.14 |
[Java] Arrays, Array 메소드 정리 (0) | 2024.08.14 |