반응형
컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스
Iterator, ListIterator
- ListIterator은 Iterator의 접근성을 향상시킨 것(단방향 > 양방향)
- boolean hasNext() : 읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다.
- Object next() : 다음 요소를 읽어온다. hashNext()를 확인하고 사용 하는 것이 좋다.
package collection;
import java.util.*;
public class CollectionMain2 {
public static void main(String [] args){
// Iterator은 Collection의 메소드이기 때문에
// 타입을 Collection으로 참조변수를 생성하여 유연하게 하는 것이 좋다.
// ArrayList TreeSet 모두 가능
// Collection list = new ArrayList<String>();
Collection list = new TreeSet<String>();
list.add("a");
list.add("b");
list.add("d");
list.add("f");
list.add("z");
list.add("h");
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
Enumeration
Iterator의 구버전
- boolean hasMoreElements() : 읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다.
- Object nextElement() : 다음 요소를 읽어온다. hashNext()를 확인하고 사용 하는 것이 좋다.
Map과 Iterator
- Map에는 iterator()가 없다. Map은 Collection의 자식이 아니기 때문
keySet(), entrySet(), values()를 호출해서 Collection 변수를 얻어서 Iterator 사용
package collection;
import java.util.*;
public class MapIteratorMain {
public static void main(String [] args){
Map map = new HashMap<String, Integer>();
map.put("A", 10);
map.put("B", 30);
map.put("C", 40);
map.put("D", 20);
map.put("E", 90);
System.out.println("key value 값 ");
Iterator it = map.entrySet().iterator();
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println("key 값 ");
Iterator itKey = map.keySet().iterator();
while(itKey.hasNext()){
System.out.println(itKey.next());
}
System.out.println("value 값 ");
Iterator itValue = map.values().iterator();
while(itValue.hasNext()){
System.out.println(itValue.next());
}
}
}
반응형