티스토리 뷰

자바에서 List나 배열과 같은 일련의 오브젝트들을 접근할 때에는 for, for-each, iterator, while과 같은 반복문, 반복자를 사용한다. 우선 가장 기본적인 for문을 살펴보면, List의 크기를 구해서 그 해당 크기만큼 출력한다.

public class test {
	public static void main(String[] args) {
		 
		ArrayList<String> number_list = new ArrayList<String>();
		number_list.add("num_1");
		number_list.add("num_2");
		number_list.add("num_3");
		number_list.add("num_4");
		number_list.add("num_5"); 
		  
		System.out.print("[For Loop]		");
		int size = number_list.size();
		for(int i=0; i<size;i++){
			System.out.print(number_list.get(i) + " ");
		}
		
	}
}




하지만, 위와 같은 코드로 구현을 하게 되면, size를 구해서 정해진 값만큼 돌리기가 코딩하기 귀찮을 수 있다. 이런 일련의 list이나 배열에 접근하기 위해서는 for-each문을 많이 사용한다. for-each문은 for문보다 훨씬 사용하기 쉽다.

public class test {

	public static void main(String[] args) {
		 
		ArrayList<String> number_list = new ArrayList<String>();
		number_list.add("num_1");
		number_list.add("num_2");
		number_list.add("num_3");
		number_list.add("num_4");
		number_list.add("num_5"); 
		   
		System.out.print("[For-each Loop]		"); 
		for(String s : number_list){
			System.out.print(s + " ");
		}
	}
} 




다음과 같이 크기도 구하지 않고 for ( type var : arr ) { ... }의 형식을 적는 것만으로 모든 항목에 접근할 수 있다. 마지막으로 Iterator를 사용하는 방법도 있다.

public class test {

	public static void main(String[] args) {
		 
		ArrayList<String> number_list = new ArrayList<String>();
		number_list.add("num_1");
		number_list.add("num_2");
		number_list.add("num_3");
		number_list.add("num_4");
		number_list.add("num_5"); 
		   
		System.out.print("[Iterator Loop]		"); 
		Iterator<String> iter = number_list.iterator();
		while(iter.hasNext()){
			System.out.print(iter.next() + " ");
		} 
	}
}


number_list.iterator();로 자기자신을 iterator로 저장한다. iterator는 내부적으로 배열이든 list방식으로든 접근하여 next()를 사용해서 다음 포지션 값을 출력해준다. 


'Language > Java' 카테고리의 다른 글

[JAVA] String, StringBuilder, StringBuffer의 문자열 합  (0) 2013.10.21
[JAVA] System.gc()  (0) 2013.10.21
[JAVA] 가변 매개변수  (0) 2013.09.04
[JAVA] 자바 문자열 함수  (5) 2013.07.01
[JAVA] 자바 에러  (0) 2013.04.24
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday