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 |