이번 포스팅에서는 확장 for문에 대해 알아보겠다.
확장 for문이란?
JDK 1.5 부터 추가된 기능으로, 기존 for문을 축약했다고 볼 수 있다.
기본 문법은 다음과 같다.
for (대입할 변수 : Collection) {
//TODO
}
Collection의 타입과 대입할 변수의 타입이 일치해야 하며,
해당 Collection의 길이만큼 반복하여 변수에 대입된다.
*Collection에 대한 설명은 아래 'Collection ?' 탭에서 진행한다.
배열을 예시로 들어보겠다.
int[] array = {10, 20, 30, 40};
for (int i : array) {
System.out.println(i);
}
결과)
변수 i에 배열 array 원소의 값이 하나씩 대입되며 출력되었다.
기존 for문과 비교
위와 마찬가지로, 배열을 예시로 비교해 보겠다.
int[] array = {10, 20, 30};
// 기존 for문
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
// 확장 for문
for (int i : array) {
System.out.println(i);
}
확실히 문법적으로 작성해야할 코드가 많이 줄어서
코드 작성도 간편하고 가독성도 좋아졌다.
하지만 확장 for문은 사용성에 있어서 제한적이다.
초기화식이 따로 없기 때문에, 카운트 변수의 역할을 해줄 변수가 없다.
int count = 0;
for (int i : array) {
System.out.println(i);
count ++;
}
그렇기에 카운트 변수가 필요하다면,
위 처럼 카운트 전용 변수를 따로 생성하여 사용해줘야 한다.
이렇게 사용할거면 차라리 while문을 쓸 것 같기도 하고...
Collection ?
자바에서 Collection이란, 데이터의 집합·그룹을 의미하며
이를 구현하는 클래스를 정의하는 인터페이스를 제공해준다.
Collection 상속 계층도는 다음과 같다.
Map의 경우 구조상 Collection을 상속하진 않지만,
자바에서는 Collection에 포함시키고 있다.
또한, 위 계층도에서는 생략되었지만 Queue, Arrays 등이 포함된다.
우리가 흔히 사용하는 Arrays, ArrayList, HashMap 등의 부모라고 볼 수 있다.
그렇기에 위에서 설명한 클래스의 객체는 모두 확장 for문에 사용할 수 있다.
오늘은 확장 for문에 대해 알아보았다.
아직 기존 for문이 손에 익어서 매번 기계처럼 반복문을 만들곤 하지만,
Collection을 다루는 반복문에서는 한번 써볼만 한 것 같다.
'Java (자바)' 카테고리의 다른 글
[Java] JDK · JRE · JVM (0) | 2024.03.04 |
---|---|
[Java] HashMap / 해시맵 (0) | 2024.02.06 |
[Java] 삼항 연산자 (0) | 2024.02.04 |
[Java] 날짜 데이터를 시스템 시간으로 포맷하기 / 날짜 더하기 · 빼기 (0) | 2024.02.03 |
[Java] String / StringBuffer / StringBuilder (0) | 2024.02.02 |