HashMap 과 Hashtable

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

HashMap

  • 순서 x 중복 , 키,밸류로 저장 (키 x ,값 O)
  • 순서 유지하려면 LinkedHasMap클래스 사용하면됨
  • 해싱 기법으로 데이터를 저장, 데이터가많아도 검색빠름.
  • Entry[] : Key ,value 묶음 (객체)

해싱 (hashing)

  • 해시함수 로 해시테이블 에 데이터를 저장검색
  • 해싱함수를 이용해 > ‘키’ 넣으면 ,저장위치(배열인덱스번호,해시코드) 알려줌
  • 해시테이블은 배열(접근성유리) 과 링크드 리스트(변경에유리)가 조합된형태
  • Objects.hash()
  • 서로 다른 키일지라도 같은값의 해시코드를 반환할수도있다

HashMap()
HashMap(int initialCapacity) : 초기용량 해시테이블> 배열+링크드리스트
HashMap(int initialCapacity, float loadFactor) 0.8 > 80% >해시테이블> 배열+링크드리스트
HashMap(Map m )

Object put(Object key, Object value) : 추가
void putAll (Map m) : 추가
Object remove(Object key) : 삭제
Object replace(Object key, Object value) : 변경
boolean replace(Object key, Object oldValue, Object newValue) :변경

Object get(Object key) : 값 반환
Object getOrDefault(Object key, Object defaultValue)
boolean containsKey(Object key) : 지정된 키 있으면 true
boolean containsValue(Object value) : 지정된 값 있으면 true

int size() :크기
boolean isEmpty() : 비어있으면 트루, 아니면 거짓
void clear() : 모두 삭제
Object clone() : 객체 복제

TreeMap > TreeSet

  • 범위 검색,정렬에 유리
  • HashMap 보다 데이터 추가,삭제 시간더걸림 (비교하면서저장하니)

Categories:

Updated:

Leave a comment