[개인공부] HashMap

Walter Mitty·2023년 1월 2일
0

개인공부

목록 보기
38/40
post-thumbnail

HashMap과 Hashtable

  • 저장 순서 X, 키 중복 X, 값 중복 O
  • Map 인터페이스를 구현.
  • 데이터를 키와 값의 쌍(key, value)으로 저장
  • HashMap(동기화X)은 Hashtable(동기화O)의 신버전이다.

HashMap

  • Map인터페이스를 구현한 대표적인 컬렉션 클래스
  • 순서를 유지하려면 LinkedHashMap클래스를 사용하면 된다.

TreeMap

  • 범위 검색과 정렬에 유리한 컬렉션 클래스
  • HashMap보다 데이터 추가, 삭제에 시간이 더 오래 걸린다(비교하고 저장하다 보니!)

HashMap의 키(key)와 값(value)

  • 해싱(hashing) 기법으로 데이터를 저장
    • 데이터가 많아도 검색이 빠르다
  • Map인터페이슬을 구현.
    • 데이터를 키와 값의 쌍으로 저장(Entry!)

키(key): 컬렉션 내의 키(key) 중에서 유일해야 한다.
값(value): 키(key)와 달리 데이터의 중복을 허용한다.

HashMap map = new HashMap();
map.put("myId", "1234");
map.put("asdf", "1111");
map.put("asdf", "1234");

저장된 것을 확인하면
똑같은 키로 다른 값이 들어오면 저장이 안되는것이 아니라 새로운값으로 덮어 씌워준다.
‣ 참고용! JDK 버전 업이되면서 현재 객체지향적 코드도 달라졌을 것!

해싱(hashing)

해쉬함수를 이용해서 저장하고 읽어오기.

  1. 환자 정보 관리
  • 어떤 키값을 넣으면 index(저장위치)를 반환함





  1. 해시함수(hash function)로 해시테이블(hash table)에 데이터를 저장, 검색

    배열의 장점: 접근성
    링크드리스트의 장점: 변경 유리
    이 두가지 장점을 섞은 것 = hash table!

    Objects.hash()로 쓴다.


  1. 해시테이블에 저장된 데이터를 가져오는 과정

0개의 댓글