Map 인터페이스의 구현체로, HashTable과 유사한 자료구조로 데이터를 저장한다.
Set 인터페이스의 구현체로, 내부적으로 HashMap을 사용하기 때문에 HashTable과 유사한 자료구조로 데이터를 저장한다.
Key-Value 쌍 형태로 데이터를 저장하며, Key와 Value의 mapping을 유지하고 있다.
객체 그 자체를 저장한다.
위에서 HashMap을 내부적으로 사용한다고 했는데,
Key 값으로는 삽입되는 객체 그 자체를, Value 값으로는 HashSet 내부 구현 코드에서 미리 선언해둔 dummy 객체를 사용한다.
중복 Key 값을 허용하지 않지만, 중복 Value 값은 허용한다.
ex. {'a': 1, 'b': 1, 'c': 2}
객체 자체를 데이터로 저장하기 때문에 중복을 허용하지 않는다.
ex. {'a', 'b', 'c'}
(중복 Key 값을 허용하지 않기 때문에)
단 하나의 NULL 값을 Key 값으로 가질 수 있고, 여러 NULL 값을 Value 값으로 가질 수 있다.
단 하나의 NULL 값을 가질 수 있다.
데이터의 유일함(Uniqueness)을 유지하기 위해 항상 HashMap이 HashSet보다 선호된다.