HashMap

지윤·2021년 2월 12일
0

Java

목록 보기
16/21

HashMap

  • Map 인터페이스를 구현한 클래스로 순서 X
  • 데이터를 키와 값의 쌍으로 저장하며, 키는 중복X, 값은 중복O
  • Hashtable은 예전에 나온 것으로 동기화O, HashMap은 동기화X
  • 순서를 유지하려면 LinkedHashMap 클래스를 사용하면 된다.
  • 해싱 기법으로 데이터를 저장하여 데이터가 많아도 검색이 빠름
  • add 대신 put을 사용
  • 중복된 키, 값을 put하는 경우 기존의 데이터를 덮어쓴다.
  • Entry: 키와 값의 한 쌍을 의미함
  • entrySet() 메서드를 통해서 Set으로 Entry를 반환받으면, Iterator 사용 가능
* 해싱(hasing)이란?
어떠한 key 값을 주면 해당 데이터의 index (저장위치)를 반환하는데 이 위치를 해시코드라고 한다. 즉, 해싱은 해시함수를 이용해서 해쉬테이블에 있는 데이터를 저장하고 검색하는 것을 의미한다. 데이터를 가져오는 과정을 설명하자면 키를 이용하여 해시함수를 호출해서 해시코드를 얻는다. 해시코드에 대응하는 링크드리스트를 배열에서 찾는다. 링크드리스트에서 키와 일치하는 데이터를 찾는다. 해시함수는 같은 키에 대해서는 항상 같은 해시코드를 반환해야 한다. 서로 다른 키일지라도 같은 값의 해시코드를 반환할 수 있다.

* 해시테이블이란?
배열과 링크트 리스트가 조합된 형태이다. 배열의 장점(접근성) + 링크드 리스트 장점(변경 유리)

TreeMap

  • TreeSet와 비슷하다. 범위 검색과 정렬에 유리하다.
  • HashMap보다 데이터 추가, 삭제에 시간이 더 걸림(비교 저장)
profile
헬로🙋‍♀️

0개의 댓글