Java)Map은 Collection인터페이스가 조상이 아닌데 Iterator를 어떻게 사용할까?

나가을·2024년 7월 1일
0

java

목록 보기
10/12

LinkedHashMapTreeMap 자체는 Iterable을 직접 구현하지 않지만, 그들이 반환하는 entrySet(), keySet(), values() 메서드를 통해 이터레이션이 가능하다.
(이 메서드들은 Iterable 인터페이스를 상속하는 컬렉션을 반환한다.)

LinkedHashMapTreeMap의 이터레이션 가능성

  1. Map 인터페이스의 메서드:

    • entrySet(): Set<Map.Entry<K, V>>를 반환.
      Set 인터페이스는 Collection을 상속하며, CollectionIterable을 상속.

    • keySet(): Set<K>를 반환합니다. 이 SetCollection을 상속.

    • values(): Collection<V>를 반환.

예시 코드

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;

public class Main {
    public static void main(String[] args) {
        // LinkedHashMap 예시
        LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>();
        linkedHashMap.put("one", 1);
        linkedHashMap.put("two", 2);
        linkedHashMap.put("three", 3);

        // entrySet()을 이용한 순회
        for (Map.Entry<String, Integer> entry : linkedHashMap.entrySet()) {
            System.out.println("LinkedHashMap Entry: " + entry.getKey() + " = " + entry.getValue());
        }

        // TreeMap 예시
        TreeMap<String, Integer> treeMap = new TreeMap<>();
        treeMap.put("one", 1);
        treeMap.put("two", 2);
        treeMap.put("three", 3);

        // entrySet()을 이용한 순회
        for (Map.Entry<String, Integer> entry : treeMap.entrySet()) {
            System.out.println("TreeMap Entry: " + entry.getKey() + " = " + entry.getValue());
        }
    }
}
profile
도라도라 코딩나라

0개의 댓글