본문 바로가기

Java

HashMap vs HashSet

HashMap

  • Map 인터페이스의 구현체이다.
  • HashTable과 유사한 자료구조로 데이터를 저장한다.
  • Key-Value 형태로 데이터를 저장하고 Key와 Value의 Mapping을 유지한다.
  • Key 중복을 허용하지 않지만, Value 값의 중복을 허용한다.
  • Key에 하나의 null, Value의 다중 null을 허용한다.

HashSet

  • Set 인터페이스의 구현체이다.
  • 내부적으로는 HashMap을 사용하기 때문에 마찬가지로 HashTable과 유사한 자료구조로 데이터를 저장한다.
  • Key의 값으로 객체 그 자체를 저장하고 Value 값으로 HashSet 내부 구현 코드에 미리 선언해둔 Dummy Value를 저장한다.

 

  • 중복을 허용하지 않는다.
  • 하나의 null 값을 허용한다.
  • 데이터의 순서에 의미를 두지 않는다.

 

성능

  • HashMap > HashSet
  • HashMap은 value 값이 고유 키와 연관되어 하나의 객체를 생성하는 반면, HashSet은 삽입 연산 중에 key, value 총 2개의 객체가 생성되기 때문에 더 느리다.

 

'Java' 카테고리의 다른 글

Java 8  (0) 2023.02.20
[Java] 함수형 프로그래밍  (0) 2022.09.04