개선된 for문

반응형

for each문 , 개선된 for문 , 향상된 for문 다양하게 부르지만 본문에선 개선된 for문이라 명칭 하겠습니다.

 

개선된 for 문

 

조건


1.JDK 1.5 이상

2.사용할 변수는 지역변수로 인식된다. (For문 안에서 사용되기 때문)
3. 대상은 배열 or 여러 원소를 포함한 자료형이어야 한다.

 

 

장점


1.간편한,가독성 좋은 코드
2. 배열 인덱스 문제 해결 (ArrayIndexOutOfBoundsException 예외를 피할 수 있다.)

 

 

단점


1.인덱스를 사용하지 못한다.(일반 for문의 (int i=0;) 할 때 i 같은 인덱스를 말하는 것) 하지만 방법이 있다.
★ 중요 ★
2.배열이나 ArrayList 값을 사용할 순 있지만 절대 수정할 수는 없다.

 

 

사용 이유


배열처럼 여러 원소로 이루어진 집합의 모든 원소에 대해 특정 작업을 반복하기 위해 사용

 

자주 사용되는 상황

1.ArrayList 원소 출력
2.배열 원소 출력

 

 

속도


일반 for문이 더 빠르다는 소문이 있어서 테스트해봤는데, 제가 해본 결과는 일단 같았습니다.

일반 for문 == 개선된 for문

이 부분에 있어서 정확하게 아시는 분은 덧글좀 남겨주세요.

 

문법


for(자료형 변수명 : 배열명){
	문장
}

 

쉽게 설명하면

for(자료형 한 단계 아래의 자료형의 변수명 : 배열명){

}

정확히 말하면 아래의 자료형이 아니지만 이렇게 생각하면 이해가 쉽더라고요.

 

실전 예제 - 일반 배열 원소 추출

String[] arr = {"1-1","1-2","1-3","1-4","1-5"};
 		
for(String s : arr) {
		  
 System.out.println(s);
		  
}

결과

 

 

실전 예제 2 - 이차원 배열 원소 추출

String[][] arr = {{"1-1","1-2","1-3","1-4","1-5"},{"2-1","2-2","2-3","2-4","2-5"}};
 		
for(String[] arrs : arr) {
	for(String s : arrs) {
		System.out.println(s);
	}
}

결과

 

 

실전 예제 3 - 삼차원 배열 원소 추출

String[][][] arr = {{{"1-1","1-2","1-3","1-4","1-5"},{"2-1","2-2","2-3","2-4","2-5"}},
					{{"3-1","3-2","3-3","3-4","3-5"},{"4-1","4-2","4-3","4-4","4-5"}}};
 		
for(String[][] arrtop : arr) {
	for(String[] arrs : arrtop) {
		for(String s : arrs) {
			System.out.println(s);
		}
	}
}

결과

 

 

실전 예제 4 - ArrayList<String> 원소 추출

ArrayList<String> arrlist = new ArrayList<String>();
arrlist.add("1-1");
arrlist.add("1-2");
arrlist.add("1-3");
		
for(String s : arrlist) {
			  
  System.out.println(s);
			  
}

결과

 

 

실전 예제 5 - ArrayList<Class> 원소 추출

public class Ex001 {

	private String a;
	private int b;
	private int c;
	
	public String getA() {
		return a;
	}
	public void setA(String a) {
		this.a = a;
	}
	public int getB() {
		return b;
	}
	public void setB(int b) {
		this.b = b;
	}
	public int getC() {
		return c;
	}
	public void setC(int c) {
		this.c = c;
	}
}
ArrayList<Ex001> arrlist = new ArrayList<Ex001>();

Ex001 ex01 = new Ex001();
ex01.setA("a");
ex01.setB(1);
ex01.setC(2);
arrlist.add(ex01);
		
 for(Ex001 s : arrlist) {
			  
 System.out.println(s.getA());
 System.out.println(s.getB());
 System.out.println(s.getC());
			  
}

결과


 

반응형

+ Recent posts