key-value 형식으로 데이터를 저장.
key는 중복 불가, value는 중복가능
key : value
주민번호 : 이름
데이터를 찾을때는 key를 이용해서 검색한다.
put(key,value) : 데이터 저장
get(key) : 데이터 검색
remove(key) : 데이터 삭제
HashMap
가장 일반적인 map
순서의 저장이 없음.
value에 null값 저장이 가능하다.
public static void main(String[] args) {
HashMap<String, Double> foods = new HashMap<>();
//식품명을 key, 칼로리를 value로저장
foods.put("hamberger", 850.0);
foods.put("rice", 300.0);
foods.put("coke", 110.7);
System.out.println(foods.get("coke"));
}
=> 110.7 출력
TreeMap
key를 기준으로 오름차순 정렬.
public static void main(String[] args) {
HashMap<String, Double> foods = new HashMap<>();
//식품명을 key, 칼로리를 value로저장
foods.put("hamberger", 850.0);
foods.put("rice", 300.0);
foods.put("coke", 110.7);
//모든 key를 print하는 방법
Set<String> keys = foods.keySet();
for (String key : keys) {
System.out.println(key +":"+ foods.get(key));
}
}
=> key를 기준으로 알파벳 오름차순 정렬된 모습
입력 순서를 기억, 순서 보장
일반적으로 동기화가 필요 없다면 HashMap을, 동기화 보장이 필요하다면 Hashtable을 사용하면된다.
HashMap과 Hashtable은 동기화를 보장하느냐 하지 않느냐는 측면 이외에는 차이가 거의 없다.
사용법도 똑같아, put() 메서드로 데이터를 삽입하고, get() 메서드로 추출하면된다.
(출처: https://firedev.tistory.com/entry/Java-HashMap과-Hashtable-의-차이점)
null값을 허용하지 않는다!
http://tech.javacafe.io/2018/12/03/HashMap/
https://firedev.tistory.com/entry/Java-HashMap과-Hashtable-의-차이점