Back-end/JAVA,Spring

[java] Enhanced For Loop 향상된 for문 이란?

cheersHena 2019. 4. 23. 22:26
반응형

Enhanced For Loop 

JDK 5에서 추가된 기능으로 기존 for loop 보다 간결하게 순회가능.

 

//for-loop
for(int i = 0; i<5; i++){
	//...
}


//Enhanced For-loop
List<String> strings = new ArrayList<>();

for(String item: strings){
		//...
}

 

 

Enhanced For Loop 특징

항상 인덱스는 1씩 증가함.

순회 중 내부요소 변경 불가.

 

Enhanced For Loop 장점

반복 순회 코드 작성시 일반적인 for loop보다 코드가 간결하고 짧다.

순회하는 데이터의 이름을 통해 명활히 어떤 데이터를 사용하는지 알아볼 수 있다. 

 

Enhanced For Loop 단점

순회의 시작점과 끝을 지정할 수 없다.

순회 요소의 변경이나 삭제는 불가하다. 

인덱스 크기 변경 불가하다. 

이 모든 단점은 내부적으로 iterator(반복자)를 사용하기 때문이다. 

 

즉, 원소의 값에 변경을 주지 않는 경우에만 사용가능 함. 

 

 

For loop /  Enhanced For loop 차이로 쉽게 이해하기 

 

 

code) List

 

public class EnhancedFor {
    public static void main(String [] args){

        List<String> list = new ArrayList<>();
        list.add("abc");
        list.add("bef");

        // for-loop
        for(int i=0; i<list.size(); i++){
            System.out.println(list.get(i));
        }

        System.out.println("===============");

        //Enhanced-for-loop
        for(String item: list){
            System.out.println(item);
        }

    }
}

 

 

 

code) Array 


public class EnhancedFor {
    public static void main(String [] args){
        int[] array = {1,2,3,4,5};

        // for-loop
        for(int i=0; i<array.length; i++){
            System.out.println(array[i]);
        }

        System.out.println("===============");

        //Enhanced-for-loop
        for(int item: array){
            System.out.println(item);
        }

    }
}

 

 

반응형