선행 내용

 

    Map을 이해하기 위해서는 Set에 대한 이해가 필요합니다.

 

 

Set, Map 비교

 

    Set은 값이 곧 저장 위치를 나타내는 자료구조입니다.

    따라서 중복 저장이 되지 않는 점, 값을 순서대로 출력할 수 없다는 등 부실한 기능이 있었고,

    이를 보충하기 위한 방안으로 Set의 좋은 기능은 가져가되, 인덱스를 따로 둠으로써

    해당 문제점들을 해결하기 위한 Map이 있습니다.

 

 

Map

 

    - 저장

 

 

    - 조회

 

 

EntrySet / KeySet

 

    Set에서는 Iterator를 이용해 저장된 자료를 출력할 수 있었습니다.

    Map에서도 Iterator를 통해 출력하는 방법도 있지만, 주로 EnrtySet과 KeySet이라는 개념이 사용됩니다.

 

    KeySet저장된 값들의 Key모음이라고 생각하면 됩니다.

int count = 1;
for(int key : hMap.keySet()) {
	System.out.println(count + "번째 KeySet : " + key + ", " + hMap.get(key));
}

 

 

    EntrySet저장된 키와 값에 대한 정보룰 모두 가지고 있고, 이들의 모음이라고 생각하면 됩니다.

int count = 1;
for(Map.Entry<Integer, String> mEntry : hMap.entrySet()) {
	System.out.println(count + "번째 EntrySet : " + mEntry.getKey() + ", " + mEntry.getValue());
}

 

 

HashSet 활용하여 Map 출력

 

Map<String, String> map = new HashMap<String, String>();
        map.put("key01", "value01");
        map.put("key02", "value02");
        map.put("key03", "value03");
        map.put("key04", "value04");
        map.put("key05", "value05");
 
        // 방법 01 : entrySet()
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println("[key]:" + entry.getKey() + ", [value]:" + entry.getValue());
        }
        
        // 방법 02 : keySet()
        for (String key : map.keySet()) {
            String value = map.get(key);
            System.out.println("[key]:" + key + ", [value]:" + value);
        }
    
        // 방법 03 : entrySet().iterator()
        Iterator<Map.Entry<String, String>> iteratorE = map.entrySet().iterator();
        while (iteratorE.hasNext()) {
            Map.Entry<String, String> entry = (Map.Entry<String, String>) iteratorE.next();
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println("[key]:" + key + ", [value]:" + value);
        }
    
        // 방법 04 : keySet().iterator()
        Iterator<String> iteratorK = map.keySet().iterator();
        while (iteratorK.hasNext()) {
            String key = iteratorK.next();
            String value = map.get(key);
            System.out.println("[key]:" + key + ", [value]:" + value);
        }

'Algorithm & Data Structure > Data Structure' 카테고리의 다른 글

[자료구조] HashSet, TreeSet  (0) 2021.11.02

+ Recent posts