✏️ 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 반환
