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 값으로 가질 수 있다. |
'Java 정리' 카테고리의 다른 글
[JAVA] Long <-> long , Integer <-> int 차이점 정리 (0) | 2024.12.04 |
---|---|
[JAVA] Comparable vs Comparator 비교 (0) | 2024.11.18 |