HashMap과 HashTable

Jaeho Kim·2022년 3월 11일
0

자바의정석

목록 보기
4/7

✏️ HashMap, HashTable, TreeMap, Properties

  • Map 인터페이스를 구현한 대표적인 Map 컬렉션
  • Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 보유
  • 해싱을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보임.
    (질문? Hashing은 뭔가요? 지난 시간에 배움)
  • HashMap<Object, Object>()
  • Key는 유일한값이어야 합니다. 중복되면 덮어쓰기
  • key값 null 허용 (hashtable은 허용x)
  • HashTable은 컬렉션 프레임워크가 도입되면서 HashMap으로 대체되었으나, 이전 소스와의 호환성 문제로 남겨 두고 있다.
    예제11-30) key값은 유일값
    예제11-31) hashMap을 꺼내는 과정에서 k,v 접근
    예제11-32) key값에 hashMap 넣기
    예제11-33) 한정되지 않은 범위의 비순차적인 값들의 빈도수는 HashMap을 이용해서 구할 수 있다.

  • 해싱과 해싱함수
    해싱이란? 해시함수를 이용해서 데이터를 해시테이블에 저장하고 검색하는 기법을 말한다.
    = 주소값으로 조회해서 찾기.
  • 서로 다른 두 객체에 equals()로 비교한 결과가 true인 동시에 hashCode()반환값이 같아야 같은 객체로 인식.

✏️ TreeMap

  • 이진검색트리의 형태
  • 검색 속도 HashMap > TreeMap
  • 범위검색, 정렬 필요 => TreeMap 사용
    예제11-34)
  • 객체를 저장하면 자동으로 정렬 (문자열 : 유니코드 정렬)
  • 정렬이 되기때문에, 속도는 HashMap보다 느리지만 정렬상태를 유지하거나 정렬 데이터를 조회해야하는 범위 검색이 필요한경우 TreeMap을 사용하는 것이 효율성면에서 좋다.
    예제11-34)key값 자동정렬, Collections.sort 이용 정렬

✏️ Properties

  • Hashtable 상속받아 구현.
  • (String,String)의 형태로 저장. 단순화된 컬렉션클래스
  • 애플리케이션의 환경설정과 관련된 속성을 저장하는데 사용
    예제11-35)Properties를 이용한 저장,입력,출력
    예제11-36)외부파일 입력 => 계산결과 // 키=값,#주석
    예제11-37)store(),stareToXML()을 위한 저장 차이
    데이터에 한글이 있다면 xml 표시가 좋습니다. 한글편집가능
    예제11-38)시스템 속성을 가져오는 방법을 보여줌 getProperty()

hashing : 데이터 관리 기법, 다량 데이터 저장 검색 유용
값 입력 -> 그 값의 저장위치를 알려주는 hashcode 반환

profile
Hello, World!

0개의 댓글