본문 바로가기
Java 정리

HashSet 과 HashMap 정리하기(차이점)

by neVerThe1ess 2024. 12. 16.

 

HashSet 과 HashMap에 대해서 정리하기 전에 

Set, Map에 대해서 간략하게 정리하고자 한다. 


💡Set

데이터들은 모은 집합
  • 데이터 간에 순서가 없다.
  • 중복된 데이터를 포함할 수 없다.
  • 대표적으로 HashSet , LinkedHashSet(저장순서유지), TreeSet 가 있다. 

 

💡Map 

Key 와 Value 로 데이터를 저장
  • 데이터들 간에 순서가 없다. 
  • 모든 데이터는 Key-Value 형식으로 저장된다. 
  • Key는 중복이 불가 
  • Value는 중복 가능 , Null 가능
  • 대표적으로 Hashtable , HashMap , TreeMap 가 있다. 

 

💡HashSet 

 Set 인터페이스의 구현체이다. 

  • 오직 객체(Object)만 저장 가능하다.
  • 삽입되는 Object를 Key 값으로 , 내부적으로 HashMap을 사용해 데이터를 저장하기 때문에 HashTable과 유사한 자료구조로 데이터를 저장한다고 할 수 있다. (해당 필드 객체의 해시 값 계산도 해야하기 때문에 HashMap 보다 느리다.)
  • 데이터 저장 : add() 

 

💡HashMap 

Map의 인터페이스의 구현체이다.

  • Key에 대한 Hash 값을 사용하여 Value를 저장하고 조회한다.
  • 데이터 저장 : put()

 

⭐ HashSet vs HashMap 

  HashSet HashMap
구현 Set구현체 Map구현체
중복허용 중복X Key 중복X
Value 중복O
데이터 저장 객체(Object)만 저장 가능
(내부적으로 HashMap 사용) 
Key-Value 쌍 형식으로 저장
추가 메서드  add() put()
속도 비교 HashMap 보다 느리다. HashSet 보다 빠르다.
Null 허용 단 하나의 Null값을 가질 수 있다. 단 하나의 NULL 값을 Key 값으로 가질 수 있고.
여러 NULL 값을 Value 값으로 가질 수 있다.