HashMap은 Map interface를 구현한 대표적인 Map Collection(데이터의 집합)이다.
Map은 Key와 Value로 구성된 Entry 객체를 저장하는 구조의 자료구조이고, 이 때 Key와 Value는 둘 다 객체이다.
Value는 중복저장이 가능하지만 Key는 중복저장이 불가능하다. 동일한 키로 저장 시 기존값을 삭제하고 해당 Key를 갖는 새로운 값으로 저장된다.
- HashMap 생성
- HashMap 생성
HashMap<String, String> map = new HashMap<String, String>();
- HashMap 생성 시, 타입 파라미터 생략
HashMap<String, String> map = new HashMap<>();
- HashMap 생성 시, HashMap map_1의 모든 값을 가진 HashMap 생성
HashMap<String, String> map = new HashMap<>(map_1);
- HashMap 생성 시, 초기 용량 지정
HashMap<String, String> map = new HashMap<>(10);
- HashMap 생성 시, 초기 용량과 load factor 지정
HashMap<String, String> map = new HashMap<>(10, 0.7f);
- HashMap 메소드 정리
- 입력 (put)
→ {A=에이, B=비, C=씨}HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("A", "에이"); hashMap.put("B", "비"); hashMap.put("C", "씨"); System.out.println(hashMap); hashMap.put("C", "씨이이"); System.out.println(hashMap);
→ {A=에이, B=비, C=씨이이}
입력되는 Key가 HashMap에 이미 존재한다면, 기존값을 삭제하고 새로운 값으로 교체된다.
- 삭제 (remove)
→ {A=에이, B=비, C=씨} → {B=비, C=씨} Key 값으로 Map의 요소를 삭제한다.HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("A", "에이"); hashMap.put("B", "비"); hashMap.put("C", "씨"); System.out.println(hashMap); hashMap.remove("A"); System.out.println(hashMap);
- 전체 삭제 (clear)
→ {A=에이, B=비, C=씨} → {} 모든 값을 제거한다.HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("A", "에이"); hashMap.put("B", "비"); hashMap.put("C", "씨"); System.out.println(hashMap); hashMap.clear(); System.out.println(hashMap);
- 전체 출력
→ {A=에이, B=비, C=씨}HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("A", "에이"); hashMap.put("B", "비"); hashMap.put("C", "씨"); System.out.println(hashMap);
- Key값의 Value 출력
→ 에이HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("A", "에이"); hashMap.put("B", "비"); hashMap.put("C", "씨"); System.out.println(hashMap.get("A"));
- Key 값이 없는 경우 ( getOrDefault(Key, Default) )
→ 디 HashMap 내에 get 하고자 하는 Key가 없을 경우, default 값을 return한다.HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("A", "에이"); hashMap.put("B", "비"); hashMap.put("C", "씨"); System.out.println(hashMap.getOrDefault("D", "디"));
- keySet을 사용한 for-each 반복문
→ KEY : A || VALUE : 에이 KEY : B || VALUE : 비 KEY : C || VALUE : 씨HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("A", "에이"); hashMap.put("B", "비"); hashMap.put("C", "씨"); for(String s : hashMap.keySet()) { System.out.println("KEY : " + s + " || VALUE : " + hashMap.get(s)); }
- HashMap의 Key의 개수 출력 ( size(HashMap) )
→ 3HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("A", "에이"); hashMap.put("B", "비"); hashMap.put("C", "씨"); System.out.println(hashMap.size());
- HashMap이 특정 Key를 포함하는지 여부 (containsKey(Key) )
→ trueHashMap<String, String> hashMap = new HashMap<>(); hashMap.put("A", "에이"); hashMap.put("B", "비"); hashMap.put("C", "씨"); System.out.println(hashMap.containsKey("A")); System.out.println(hashMap.containsKey("Z"));
→ false
'[Java] > 문법, 자료구조, 알고리즘' 카테고리의 다른 글
Scanner vs BufferedReader (0) | 2023.03.16 |
---|---|
TreeSet, Red-Black Tree (0) | 2023.03.10 |
소수 (에라토스테네스의 체) (0) | 2023.03.10 |
String 클래스 메소드 정리 (0) | 2023.03.06 |
StringBuilder, StringBuffer (0) | 2023.03.03 |