자바 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 with Examples – GeeksforGeeks
HashMap in Java with Example (beginnersbook.com)