[Java]/문법, 자료구조, 알고리즘

HashMap

응파카 2023. 3. 10. 16:09

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)
    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=씨}
    → {A=에이, B=비, C=씨이이}
    입력되는 Key가 HashMap에 이미 존재한다면, 기존값을 삭제하고 새로운 값으로 교체된다.


    • 삭제 (remove)
    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);
    
    → {A=에이, B=비, C=씨} → {B=비, C=씨} Key 값으로 Map의 요소를 삭제한다.


    • 전체 삭제 (clear)
    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);
    
    → {A=에이, B=비, C=씨}


    • 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<String, String> hashMap = new HashMap<>();
    hashMap.put("A", "에이");
    hashMap.put("B", "비");
    hashMap.put("C", "씨");
    
    System.out.println(hashMap.getOrDefault("D", "디"));
    
    → 디 HashMap 내에 get 하고자 하는 Key가 없을 경우, default 값을 return한다.


    • keySet을 사용한 for-each 반복문
    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));
    		}
    
    → KEY : A || VALUE : 에이 KEY : B || VALUE : 비 KEY : C || VALUE : 씨


    • HashMap의 Key의 개수 출력 ( size(HashMap) )
    HashMap<String, String> hashMap = new HashMap<>();
    hashMap.put("A", "에이");
    hashMap.put("B", "비");
    hashMap.put("C", "씨");
    
    System.out.println(hashMap.size());
    
    → 3


    • HashMap이 특정 Key를 포함하는지 여부 (containsKey(Key) )
    HashMap<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"));
    
    → true
    → 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