알고리즘을 풀거나 스프링 할때도 많이 사용되어 따로 정리를 하게 되었습니다.
for each 문이라고 흔히 부르는데 '자바의 정석'에서 향상된 for문(enhanced for statement) 이라 명칭하고,
JDK1.5 부터 배열과 컬렉션에 저장된 요 소에 접근할 때 기존의 사용하던 방법보다 편하게 처리할 수 있습니다.
사용방법
for( 타입 변수명 : 배열 or 컬렉션) {
// 반복할 문장
}
사용 방법은 위와 같은 구조인데 글로만 적으면 어떻게 사용할지 감이 안올 수 있어 기존 for문과 비교하여 보여드리겠습니다.
1. 일반 for문 사용 - 배열 과 ArrayList
import java.util.ArrayList;
public class forExam {
public static void main(String[] args) {
char[] arr = {'a', 'b', 'c', 'd', 'e'};
ArrayList<Character> arrayList = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
arrayList.add(arr[i]);
}
System.out.println();
for (int i = 0; i < arrayList.size(); i++) {
System.out.print(arrayList.get(i) + " ");
}
}
}
출력 결과 : a b c d e
a b c d e
2. 향상된 for문 사용 - 배열과 ArrayList
import java.util.ArrayList;
public class forExam {
public static void main(String[] args) {
char[] arr = {'a', 'b', 'c', 'd', 'e'};
ArrayList<Character> arrayList = new ArrayList<>();
for (char arrTemp : arr) {
System.out.print(arrTemp + " ");
arrayList.add(arrTemp);
}
System.out.println();
for (Character arrayListTemp : arrayList) {
System.out.print(arrayListTemp + " ");
}
}
}
출력 결과 : a b c d e
a b c d e
향상된 for문이 좀더 가독성이 좋고 따로 범위도 지정을 하지 않아 간결하다는 느낌이 있다는 것을 알 수 있습니다. 배열에 있는 값을 하나 하나씩 뽑아 Temp가 값을 가진다 고 이해하시면 될 것 같습니다. 그러나 향상된 for문은 일반 for문과 달리 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용이 가능하다는 제약이 있습니다. (배열의 저장된 값 변경X)
[팁!] 인텔리제이 ide 를 사용한다면 iter을 사용하면 쉽게 foreach 문을 만들 수 있습니다!
'자바 (ref. 자바의정석)' 카테고리의 다른 글
클래스변수, 인스턴스변수, 지역변수 - JAVA (0) | 2022.02.09 |
---|---|
배열의 복사 - JAVA (0) | 2022.02.08 |
문자열의 비교 - JAVA (0) | 2022.02.06 |
상수와 리터럴 - JAVA (0) | 2022.02.05 |
변수란? - JAVA (0) | 2022.02.04 |