HasMap

인철·2023년 10월 13일

Java

목록 보기
44/52

HasMap

HasMap

  • Map 인터페이스를 구현한 해시테이블 기반의 자료구조
  • 중복된 키 허용하지 않음
  • 하나의 값에만 매핑

특징

  • 순서를 유지 x
  • 키와 값은 null 가능 , 동기화 x
  • 키와 값은 모두 object 타입, 모든 데이터 저장 가능

주요 메서드

  • put(key, value): 지정된 키와 값을 매핑하여 HashMap에 삽입
  • get(key): 지정된 키에 대응하는 값을 반환
  • remove(key): 지정된 키와 연결된 값을 제거
  • containsKey(key): 지정된 키가 HashMap에 있는지 확인
  • keySet(): HashMap의 모든 키를 포함하는 Set을 반환
  • values(): HashMap의 모든 값을 포함하는 Collection을 반환
  • size(): HashMap에 포함된 요소의 개수를 반환

활용

  • 데이터를 삽입하고 가져오는데 매우 효율적
  • 키-값 쌍 데이터를 다룰 때 유용, 빠른 데이터 접근을 요구하는 상황에 적합

주의할 점

  • 데이터 삽입 순서 보장 x
  • 동기화가 안되기 때문에 여러 스레드에서 동시에 접근할 경우 문제 발생
  • 해시 충돌에 대한 처리가 내부적으로 이루어지지만, 많은 양의 데이터 저장할경우 충돌 발생
간단한 물건의 재고를 관리하고 재고 추가 및 감소하는 상황을 나타내는 코드
import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        // 물건의 이름과 해당 물건의 재고 수량을 저장할 HashMap 객체를 생성합니다.
        HashMap<String, Integer> 재고관리 = new HashMap<>();

        // 재고 추가
        재고관리.put("사과", 10);
        재고관리.put("바나나", 5);
        재고관리.put("딸기", 3);

        // 재고 확인
        System.out.println("사과의 재고: " + 재고관리.get("사과"));
        System.out.println("바나나의 재고: " + 재고관리.get("바나나"));
        System.out.println("딸기의 재고: " + 재고관리.get("딸기"));

        // 사과의 재고를 5개 늘립니다.
        int 현재사과재고 = 재고관리.get("사과");
        재고관리.put("사과", 현재사과재고 + 5);

        // 재고 변경 후 출력
        System.out.println("사과의 재고: " + 재고관리.get("사과"));

        // 사과의 재고를 3개 줄입니다.
        재고관리.put("사과", 현재사과재고 - 3);

        // 재고 변경 후 출력
        System.out.println("사과의 재고: " + 재고관리.get("사과"));
    }
}

profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글