자바 HashMap 클래스 | 자바 입문강좌 49

자바 HashMap 클래스

자바 HashMap 클래스에 대해서 알아보겠습니다.

Map 이란 영단어로 ‘지도’ 의 뜻입니다. 지도는 실제 위치를 도면위에 대응시키는 일입니다. 지도는 실제가 아니지만 우리는 지도를 보고 위치를 파악할 수 있습니다. 여기서 쓰인 Hash Map 의 Hash 는 해쉬함수를 의미하고 Map 은 대응관계를 의미합니다. 즉 해쉬 규칙에 따라 대응한 자료구조 입니다. 데이터는 key 와 value의 관계로 put 메소드로 입력할 수 있습니다.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer,String> hashMap = new HashMap<Integer, String>();
        hashMap.put(101, "HashMap Test");
        hashMap.put(123, "password");
        hashMap.put(203, "apartment number");
        hashMap.put(501, "address");
        hashMap.put(777, "slot machine");
        hashMap.put(999, "last number");

        System.out.println("[------- Iterating HashMap -------]");
        for(Map.Entry m1 : hashMap.entrySet()){
            System.out.println("m1.getKey() = " + m1.getKey() +
                            " | m1.getValue() = " + m1.getValue());
        }

        System.out.println("[------- Remove using key -------]");

        int keyToRemove = 123;

        if(hashMap.containsKey(keyToRemove)){
            hashMap.remove(keyToRemove);
        }

        System.out.println("[------- Iterator HashMap -------]");

        Iterator<Integer> irt = hashMap.keySet().iterator();
        while(irt.hasNext()){
            int key = irt.next();
            String str1 = hashMap.get(key);
            System.out.println("- " + str1);
        }

    }
}
[------- Iterating HashMap -------]
m1.getKey() = 101 | m1.getValue() = HashMap Test
m1.getKey() = 501 | m1.getValue() = address
m1.getKey() = 999 | m1.getValue() = last number
m1.getKey() = 777 | m1.getValue() = slot machine
m1.getKey() = 123 | m1.getValue() = password
m1.getKey() = 203 | m1.getValue() = apartment number
[------- Remove using key -------]
[------- Iterator HashMap -------]
- HashMap Test
- address
- last number
- slot machine
- apartment number

HashMap도 Iterator 사용이 가능하고요. containsKey 메소드는 key로 value 를 찾을 수 있습니다.

요약

컬렉션 프레임워크는 같은 Base에서 상속받는 관계로 사용하다보면 직관적으로 이해되는 부분이 있습니다. 배열(Array)이나 해쉬(Hash), 이진트리(binary tree) 등 기본이 되는 자료구조가 있고 각자 특징에 따라 사용가능한 메소드가 있습니다.

연습을 통해 자료구조에 대한 감각을 키워보도록 합니다.

참고문서를 여러개 읽어 보면서 이해한 후 필요한 메소드는 JDK 문서에서 확인하도록 합니다.

참고문서

HashMap in Java – javatpoint

Java HashMap (w3schools.com)

HashMap in Java with Examples – GeeksforGeeks

HashMap in Java with Example (beginnersbook.com)

Leave a Comment