Map 인터페이스를 구현한 Map 컬렉션 중 하나이고, Map 인터페이스를 상속하고 있기 때문에 Map의 성질을 그대로 가지고 있다.
맵이란 키(Key)와 값(Value)으로 구성된 Entry 객체를 저장하는 구조를 가지고 있는 자료구조이다.
여기서 키와 값은 모두 객체이다. 키는 맵에 유일하게 있어야 되고, 중복을 허용하지 않지만 값은 중복된 값이어도 상관 없다.
같은 키의 값을 삽입하려고 하면 해당 키의 값이 변경된다.
ex) key에 영어값이 저장되어있고 value에 한글값이 저장되어있는 해쉬맵이 있다고 가정하자.
import java.util.HashMap;
HashMap<Integer,Integer> map1 = new HashMap<Integer,Integer>();
// Key - Integer / Value - Integer 타입의 Entry를 갖는 HashMap 선언
HashMap<Integer,Integer> map2 = new HashMap<>();
// New에서 타입 파라미터 생략 가능
HashMap<Integer,Integer> map3 = new HashMap<>(10);
// 초기 용량(capacity) 지정
HashMap<String,String> map4 = new HashMap<String,String>();
// Key - String / Value - String 타입의 Entry를 갖는 HashMap 선언
HashMap<String,String> map5 = new HashMap<String,String>(){{
put("Key1", "Value1");
put("Key2", "Value2");
}};
// 초기값 지정
HashMap<Integer,String> hm = new HashMap<Integer,String>();
// Key - Integer / Value - Integer 타입의 Entry를 갖는 HashMap 선언
//값 추가
hm.put(1, "One");
hm.put(2, "Two");
hm.put(3, "Three");
hm.put(4, "Four");
System.out.println(hm);
//출력결과 : {1=One, 2=Two, 3=Three, 4=Four}
// HashMap 선언, 초기값 지정
HashMap<Integer,String> hm = new HashMap<Integer,String>(){{
put(1, "One");
put(2, "Two");
put(3, "Three");
put(4, "Four");
}};
hm.remove(1); // key값 1 제거
System.out.println(hm); // 출력결과 : {2=Two, 3=Three, 4=Four}
hm.clear(); // 모든 값 제거
System.out.println(hm); // 출력결과 : {}
// 해쉬맵의 크기를 구하는 메소드
HashMap<Integer,String> hm = new HashMap<Integer,String>(){{
put(1, "One");
put(2, "Two");
put(3, "Three");
put(4, "Four");
}};
System.out.println(hm.size()); // HashMap 크기 출력 : 4
--------------------------------------------------------------------------------------
// 특정 key나 value가 존재하는지 여부
HashMap<Integer,String> hm = new HashMap<Integer,String>(){{
put(1, "One");
put(2, "Two");
put(3, "Three");
put(4, "Four");
}};
System.out.println(hm.containsKey(4)); // Key 값 4 포함 여부 : true
System.out.println(hm.containsKey(5)); // Key 값 5 포함 여부 : false
System.out.println(hm.containsValue("Four")); // value 값 "Four" 포함 여부 : true
System.out.println(hm.containsValue("Five")); // value 값 "Five" 포함 여부 : false
--------------------------------------------------------------------------------------
// 두개의 해쉬맵이 같은지 비교하는 메소드
HashMap<Integer,String> hm1 = new HashMap<Integer,String>(){{
put(1, "One");
put(2, "Two");
}};
HashMap<Integer,String> hm2 = new HashMap<Integer,String>(){{
put(1, "One");
put(2, "Two");
}};
HashMap<Integer,String> hm3 = new HashMap<Integer,String>(){{
put(1, "One");
put(3, "Three");
}};
System.out.println(hm1.equals(hm2)); // 출력결과 : true
System.out.println(hm1.equals(hm3)); // 출력결과 : false