HashMap ?

  • HashMap은 자바에서 제공하는 데이터 구조 중 하나로, 키-값(key-value) 쌍으로 데이터를 저장하는 자료구조이다.
  • 키(key)는 고유한 식별자로 사용되며, 각 키는 고유한 해시값(hash value)을 가지고 있다.
  • HashMap은 Map 인터페이스를 구현한 Map 대표 컬렉션이다.

    Map ?

    • Map은 각 키(key)에 해당하는 값(value)을 저장하고, 키를 통해 해당 값에 접근할 수 있다.
      키는 고유한 식별자로 사용되며, 각 키는 중복되지 않아야 한다.
    • 따라서 Map에 동일한 키로 여러 개의 값을 저장할 수는 없으며, 키를 통해 값을 검색하거나 변경할 수 있습니다.

HashMap 특징

  • 빠른 데이터 접근 :
    • HashMap은 해시 테이블(hash table)을 기반으로 동작하여 데이터의 추가, 검색, 삭제에 평균적으로 상수 시간(O(1))의 성능을 제공.
    • 해시 함수를 사용하여 키를 해시값으로 변환하고, 이를 배열의 인덱스로 사용하여 데이터의 위치를 계산. 이를 통해 데이터에 빠르게 접근, 데이터 효육적 관리 가능.
  • 유연한 데이터 저장:
    • HashMap은 키-값(key-value) 쌍을 저장하는 자료구조로, 키와 값은 모두 객체(Object)로 저장되므로, 어떠한 객체도 키 또는 값으로 사용할 수 있습니다.
    • 각 키(Key)는 고유해야 하며, 중복된 키는 허용되지 않지만, 값(Value)은 중복되어 저장될 수 있습니다.
    • 데이터를 저장할 때 해시 충돌(collision)이 발생할 수 있으며, 이를 체인 형태로 처리하여 동일한 버킷에 연결 리스트 또는 이중 연결 리스트로 데이터를 저장.
  • 순서의 보장이 없음:
    • HashMap은 데이터의 순서를 보장하지 않는다. 데이터를 추가한 순서나 키의 순서에 의존해서는 안 된다.
    • HashMap은 해시 테이블을 기반으로 동작하며, 키의 해시값에 따라 데이터가 배치됩니다. 따라서 데이터의 순서는 해시값과 버킷의 배치에 의해 결정됩니다.
    • 만약 순서를 보장해야 하는 경우라면 "LinkedHashMap"을 사용.

      LinkedHashMap ?

      LinkedHashMap은 키-값 쌍을 유지하면서 순서를 보장하는 HashMap의 변형.

HashMap 선언

import java.util.HashMap;

HashMap<Key 타입, Value 타입> hashMap = new HashMap<>();

HashMap 값 추가

hashMap.put(키, 값);

HashMap 값 삭제

hashMap.remove(키);

HashMap 값 출력

기본
System.out.println(map); // 전체 출력 
System.out.println(map.get(1)); // Key값 1의 value얻기
entrySet() 활용
for (Entry<Integer, String> entry : map.entrySet()) {
    System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue());
}
KeySet() 활용
for(Integer i : map.keySet()){ //저장된 key값 확인
    System.out.println("[Key]:" + i + " [Value]:" + map.get(i));
}
profile
금융 IT 전문가가 될거야

0개의 댓글

Powered by GraphCDN, the GraphQL CDN