
HashSet은 Set 인터페이스를 구현한 대표적인 컬렉션으로 중복된 요소를 저장하지 않는다. 만약 중복된 요소를 추가하고자 add 메서드 등을 사용한다면 이 메서드들은 false를 반환함으로써 중복된 요소이기 때문에 추가에 실패했다는 것을 알린다.
또한 HashSet클래스는 저장 순서를 유지하지 않기때문에 저장순서를 유지하고자 한다면 LinkedHashSet컬렉션을 사용해야 한다.
반환타입이 boolean인 메서드들은 작업에 성공하거나 사실이면 true, 아니면 false를 반환한다.
| 메서드 | 기능 |
|---|---|
| HashSet() | HashSet 객체를 생성 |
| HashSet(Collection c) | 주어진 컬렉션을 포함하는 HashSet 객체를 생성 |
| HashSet(int initialCapacity) | 주어진 값을 초기용량으로 하는 HashSet 객체를 생성 |
| HashSet(int initalCapacity, float loadFactor) | 초기용량과 load factor를 지정하는 생성자 |
| 메서드 | 기능 |
|---|---|
| boolean add(Object o) boolean addAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들을 HashSet에 추가. |
| 메서드 | 기능 |
|---|---|
| boolean contains(Object o) boolean containsAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들이 포함되어 있는지 확인. |
| 메서드 | 기능 |
|---|---|
| boolean remove(Object o) boolean removeAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들을 삭제. |
| boolean retainAll(Collection c) | 지정된 Collection에 포함된 객체만을 남기고, 다른 객체들은 HashSet에서 삭제 집합의 교집합 개념과 유사함. |
| void clear() | HashSet의 모든 객체를 삭제 |
| 메서드 | 기능 |
|---|---|
| boolean equals(Object o) | 동일한 HashSet인지 확인 |
| int hashCode() | HashSet의 해시 코드를 반환 |
| Object clone() | HashSet을 복제해서 반환 (얕은 복사) |
| 메서드 | 기능 |
|---|---|
| Iterator iterator() | 해당 HashSet의 iterator를 얻어서 반환 |
| 메서드 | 기능 |
|---|---|
| boolean isEmpty() | HashSet이 비어있는지 확인 |
| int size() | HashSet에 저장된 객체의 개수를 반환 |
| 메서드 | 기능 |
|---|---|
| Object[] toArray() | HashSet에 저장된 객체를 객체배열(Object[])로 반환 |
| Object[] toArray(Object[] a) | 지정된 배열에 HashSet의 객체를 저장해서 반환 |
이러한 기능을 가진 HashSet 클래스를 LinkedHashSet 클래스가 상속받는다.
자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서