해시맵은 이름 그대로 해싱(Hashing)된 맵(Map)입니다. 여기서 맵(Map)부터 짚고 넘어가야겠죠? 맵이라는 것은 키(Key)와 값(Value) 두 쌍으로 데이터를 보관하는 자료구조입니다. 여기서 키는 맵에 오직 유일하게 있어야합니다. 즉, 같은 맵에 두 개 이상의 키가 존재하면 안된다는 것입니다. 이름 그대로 열쇠이기 때문에 그 열쇠로 짝인 값(Value)를 찾아야하기 때문입니다. 값은 중복된 값이어도 상관이 없습니다.
HashMap과 사용법이 거의 동일한 컬렉션(Collection)에는 Hashtable이 있습니다. 두 클래스의 차이점은 Thread 관점에서 안전하냐(Hashtable), 안전하지 않은 대신 속도가 빠르냐(HashMap)입니다. 여기서는 Thread-Safe하지 않은 HashMap사용법을 가장 아래에서 살펴보도록 하겠습니다. Hashtable의 개념과 사용법, Thread-Safe한 예제를 보려면 아래의 링크를 참고해주세요.
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] ar) { Map<String,Integer> map=new HashMap(); //<키 자료형, 값 자료형> map.put("A", 100); map.put("B", 101); map.put("C", 102); map.put("C", 103); //중복된 key가 들어갈때는 이전 키,값을 지금의 것으로 업데이트 System.out.println(map); System.out.println(map.get("A")); System.out.println(map.get("B")); System.out.println(map.get("C")); } }
{A=100, B=101, C=103} 100 101 103