728x90

[HashMap]

  • HashMap은 Map인터페이스에 속해있는 컬렉션이다. 
  • 데이터는 (Key, Value)인 1:1 구조로 이루어져 있다.  
  • 키는 고유한 속성이지만 값은 고유한 속성이 아니다.
  • 그래서 같은 키의 값을 삽입하려고 하면 해당 키의 값이 변경 된다.
  • 키는 중복이 되지 않고, 값은 중복이 될 수 있다. (null 값도 저장 가능) 

[HashMap선언 방법]

public static void main(String[] args) {
    HashMap<String, Integer> map = new HashMap<>();
    HashMap<String, String> map = new HashMap<>();
}
  •   HashMap<데이터 타입, 데이터 타입> 변수명 = new HashMap<>()으로 선언할 수 있다.  

 

[HashMap데이터 추가]

public static void main(String[] args) {
    HashMap<String, Integer> map = new HashMap<>();

    // 데이터 추가
    map.put("아메리카노", 3000);
    map.put("라떼", 4000);
}
  • put(key, value)를 사용하여 값을 추가할 수 있다.
  • 선언한 타입에 맞는 데이터만 추가할 수 있다.
  • 같은 키의 값을 추가 한다면 마지막에 넣은 vlaue로 변경된다.   

 

[HashMap데이터 조회]

public static void main(String[] args) {
    HashMap<String, Integer> map = new HashMap<>();

    // 데이터 추가
    map.put("아메리카노", 3000);
    map.put("라떼", 4000);
    
    System.out.println("아메리카노의 가격 : " + map.get("아메리카노"));
    System.out.println("라떼의 가격 : " + map.get("라떼"));
    
    // Key 확인
    for (String key : map.keySet()) {
        System.out.println(key);
    }

    // Value 확인
    for (int value : map.values()) {
        System.out.println(value);
    }
    
    // 키와 값 동시에 확인하기
    for (String key : map.keySet()) {
        System.out.println("키 : " + key + "값 : " + map.get(key));
    }
}
  • get(key)를 입력하면 key에 맞는 value가 출력 된다.
  • keyset(), values()를 사용하여 key와 vlaue를 확인 할 수 있다.

 

[HashMap데이터 삭제]

public static void main(String[] args) {
    HashMap<String, Integer> map = new HashMap<>();

    // 데이터 추가
    map.put("아메리카노", 3000);
    map.put("라떼", 4000);
    
    // 데이터 삭제
    map.remove("아메리카노");
    map.clear();
}
  • remove(key)로 key를 삭제할 수 있다.
  • clear()를 사용하여모든 키값들을 삭제할 수 있다.  

 

[HashMap크기 구하기]

public static void main(String[] args) {
    HashMap<String, Integer> map = new HashMap<>();

    // 데이터 추가
    map.put("아메리카노", 3000);
    map.put("라떼", 4000);
    
    // 크기 구하기
    System.out.println(map.size());
}
  • size()를 사용하여 크기를 구할 수 있다.
728x90

+ Recent posts