컬렉션_Iterator 과 Map

2024. 2. 17. 19:32JAVA

Iterator 는 Collection 인터페이스에 포함 돼 있다고 했다.

따라서, Collection 의 구현 클래스라면 Iterator 를 사용할 수 있다고, 앞선 글에서 학습하였다.

 

그런데, Map 에는 iterator() 가 없다.

??????????

public Interface Collection{
	...
	Iterator iterator();
    ...
}

 

이전 글에서 ArrayList에서는 iterator() 를 사용할 수 있었다.

ArrayList를 거슬러 올라가 보니, Collection 을 상속받고 있음이 확인 되었다.

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{

public interface List<E> extends SequencedCollection<E> {

}

public interface SequencedCollection<E> extends Collection<E> {

}

 

 

그런데... HashMap 에도, Map에서도 Collection 과의 관계는 확인되지 않았다. 

상속 받지 않았으니 당연히 없는 것.

 

그렇담 어떻게 해야 하나...

Map 인터페이스에는 

Set<K> keySet();
Collection<V> values();

등의 메서드가 있다.

Set? Collection? 그렇다.

살짝 번거롭지만,

메서드 사용에 대한 반환값으로 Collection 과 연관된 객체를 받아, Iterator 를 호출하면 사용할 수 있다.

Map map = new HashMap();

Iterator iterator = map.keySet().iterator();

오.. 굳.

 

'JAVA' 카테고리의 다른 글

컬렉션_HashSet_2  (0) 2024.02.20
컬렉션_HashSet(1)  (0) 2024.02.19
컬렉션_Iterator  (0) 2024.02.17
컬렉션_스택&큐  (0) 2024.02.15
컬렉션_LinkedList  (0) 2024.02.15