반응형

Java에서 Iterator 기능은 많이 사용하지 않지만

과거에는 많이 사용한 기능 중에 하나입니다.

 

주요 기능은 집합 형태를 띠는 데이터를

반복적으로 데이터를 출력하거나 제어하는 역할을 수행합니다.

 

대상데이터는 Collection에 속하는 List나 Map등에서 많이 사용됩니다.

 

Iterator 정의

Iterator를 구글에 검색해 보시면 사전적 의미는 반복자라고 정의 어 있습니다.

즉, 반복적인 기능을 수행하는 역할을 하며

반복대상은 Collection 데이터를 제어할 때 사용합니다.

 

장점

우리가 사용하는 List, Map, Set의 Collection 구조의 데이터는

데이터를 제어할 때, 고유 기능을 사용해야 하는데요.

 

이는 각각 가지는 고유기능을 사용함에 따라 사용자는 불편함을 가질 수 있습니다.

 

Iterator는 공통으로 위의 자료구조를 모두 제어할 수 있기 때문에

이런 단점을 해결할 수 있어 과거에는 많이 사용되었습니다.

 

 

사용법(Map)

	Map<String, String> map  = new HashMap<String, String>();
	
	map.put("한국", "KR");
	map.put("일본", "JP");
	map.put("중국", "CN");

	int idx = 0;
	Iterator<String> itr = map.keySet().iterator();
	
	while(itr.hasNext()) {
		String it_txt = itr.next();
		System.out.println("["+idx +"]" + " 값 : "+ it_txt);
		idx++;
	}

 

사용법(List)

	
	List<String> list = new ArrayList<String>();
	list.add("미국");
	list.add("독일");
	list.add("러시아");
	
	int idx = 0;
	Iterator<String> itr = list.iterator();
	
	while(itr.hasNext()) {
		String it_txt = itr.next();
		System.out.println("["+idx +"]" + " 값 : "+ it_txt);
		idx++;
	}

 

Map과 List의 자료형태를 가지는 데이터를

Iterator를 이용해서 출력해 본 모습입니다.

 

그렇게 자료의 구조를 서로 다르지만 Iterator를 쓰면

형태와 관계없이 반복적으로 값을 출력할 수 있습니다.

 

다만 사용법이 조금 다른데요.

 

Iterator 할당 부분에 map은 ketSet()을 활용하고 있지만

List에는 이 부분이 빠져 있습니다.

 

이런 부분만 주의한다면 다양한 형태를 갖는 데이터를

손쉽게 제어할 수 있습니다.

반응형

+ Recent posts