Map<String, String> map1 = new HashMap<>();
HashMap<String, Object> map2 = new HashMap<>();
Map 선언은 위 두가지 경우 모두 가능한데, 객체 생성은 꼭 HashMap으로 해줘야한다.
그 이유는 Map은 인터페이스이기 때문에 선언만 가능하며, Child인 HashMap으로 객체를 생성하고, 부모인 Map의 메소드를 상속받게 된다.
또한, 데이터를 모아서 관리할 수 있는 Class를 Collection이라 하는데, 자바에서 제공하는 Collection의 예시는 List, Map, Set 등이 있다.
그 중에서 Map은 key와 value로 구성되는 Collection이며, 내부 구현 방식에 따라 HashMap, TreeMap, LinkedHashMap 등으로 나뉘게 된다.
// Map 선언
HashMap<String, Object> hashmap = new HashMap<>();
// Map 복사
HashMap<String, Object> copiedHashmap = new HashMap<>(hashmap);
// key, value 추가
hashmap.put("Java", 1);
// key 해당하는 value 제거
hashmap.remove("Java");
// 모든 값 제거
hashmap.clear();
// key에 해당하는 value 변경
hashmap.replace("Java", 10);
// key에 해당하는 value 리턴
hashmap.get("Java");
// 모든 key 리턴
hashmap.keySet();
// 모든 value 리턴
hashmap.values();
// key 존재 여부 확인 (있으면 true, 없으면 false)
hashmap.containsKey("Java");
// value 존재 여부 확인 (있으면, true, 없으면 false)
hashmap.containsValue(1);
// hashmap empty 여부 확인 (empty면 true, 아니면 false)
hashmap.isEmpty();
// key에 해당하는 값("Java")이 없으면 defaultValue(-1) 반환
hashmap.getOrDefault("Java", -1);