Paradox Simulation

728x90
반응형

Java에서는 for문과 다르게 for each구문을 사용할 수 있는 방법이 있다.

 

for each문은 자바에서 J2SE 5.0 부터 사용 가능하며, for each 키워드가 따로 있는것이 아닌,

for문에서 사용이 가능하다.

 

조건식 부분의 문법이 조금 다르다.

 

기존에 다음과 같은 배열과, for문이 있다고 가정하겠다.

 

String[] temp = {"첫번째", "두번째", "세번째"};
for(int i = 0; i < temp.length; i++) {
	System.out.println(temp[i]);
}

 

위 구문을 다음과 같이 바꿀수있다.

 

String[] temp = {"첫번째", "두번째", "세번째"};
for (String s: temp)
	System.out.println(s);

 

for each의 구조는 다음과 같이 이루어져있다.

for (type var: iterate) {
	body-of-loop
}

iterate 같은경우 루프를 돌릴 배열이나 리스트 등 객체를 말하고,

iterate 객체에서 한개씩 순차적으로 var에 대입하게 된다.

iterate로 사용이 가능한건 배열이나 ArrayList처럼 루프를 돌릴수 있는 자료형만 가능하다.

 

단, 해당과 같이 사용하는 for each의 경우엔 1스텝씩 순차적으로 반복이 가능할 경우에 사용이 가능하다는 제약조건이 있다.

 

여담으로 for each의 경우 여러 기능으로 코딩이 가능하다.

 

다음과 같이 코딩 작성을 해보겠다.

 

import java.util.*;

/*
 * @author Iterator
 */
public class IterateList {
	public static void main(String[] argv){
    	// list 생성
        List<String> tempList = new ArrayList<String>();
        
        // 리스트 내용 삽입
        tempList.add("첫번째");
        tempList.add("두번째");
        tempList.add("세번째");
        tempList.add("네번째");
        
        // 단순 for문
        for (int i = 0; i< tempList.size(); i++)
        	System.out.println(tempList.get(i));
        
        // for each
        for (String temp: tempList)
        	System.out.println(temp);
            
        // iterator for each
        Iterator<String> tempIterator = tempList.iterator();
        while (tempIterator.hasNext())
        	System.out.println(tempIterator.next());
            
        // forEach 람다식
        tempList.forEach((temp) -> {
        	System.out.println(temp);
        });
        
        // Steam forEach 식
        tempList.stream().forEach((temp) -> System.out.println(temp));
    }

}

 

Iterator 식이나 stream forEach, 람다식으로 표현한 forEach 등등 여러 사용법이나 정리글은 다음에 올리도록 하겠다.

 

우선 for each 사용법이 다양하게 분포되어있고, 사용하는 방법에 따라서 여러방법이 있다는 정도만 기억해야겠다.

 

 

728x90
반응형
250x250
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band