728x90
HashSet
HashSet은 Set 인터페이스를 구현한 가장 대표적인 컬렉션이며, Set 인터페이스의 특징대로 HashSet은 중복된 요소를 저장하지 않는다.
HashSet은 저장순서를 유지하지 않는다.
생성자 또는 메서드 | 설명 |
HashSet() | HashSet 객체를 생성한다 |
HashSet(Collection c) | 주어진 컬렉션을 포함하는 HashSet을 생성한다 |
boolean add(Object o) | 객체를 저장한다 |
boolean addAll(Collection c) | 주어진 컬렉션에 조장된 모든 객체들을 추가한다. |
void clear() | 저장된 모든 객체를 삭제한다 |
boolean contains(Object o) | 주어진 객체를 포함하는지 알려준다 |
boolean containsAll(Collection c) | 주어진 컬렉션에 저장된 모든 객체를 포함하고 있는지 알려준다 |
boolean isEmpty() | 비어있는지 알려준다 |
boolean remove(Object o) | 지정된 객체를 삭제한다 |
boolean removeAll(Collection c) | 주어진 컬렉션에 저장된 모든 객체와 동일한 것들을 삭제한다(차집합) |
boolean retainAll(Collection c) | 주어진 컬렉션에 저장된 객체와 동일한 것만 남기고 삭제한다(교집합) |
int size() | 저장된 객체의 갯수를 구한다 |
Object[] toArray() | 저장된 객체들을 객체배열의 형태로 반환한다. |
이 외에도 더 있으나, 필요하다면 스스로 더 찾아보는 것으로..ㅎ
LinkedHashSet
HashSet은 저장순서가 유지되지 않는다는 단점이 있었다.
저장순서를 유지하고 싶을 때 사용하는 것이 바로 이 LinkedHashSet이다.
사용 방법은 HashSet과 동일하니, 저장 순서를 유지한다는 것만 기억하고 넘어가자.
TreeSet
이진 탐색 트리라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스이다.
이진 탐색 트리는 정렬, 검색, 범위검색에 높은 성능을 보이는 자료구조이며, TreeSet은 이진 탐색 트리의 성능을 향상시킨 '레드 - 블랙 트리'로 구현되어 있다.
HashSet과 마찬가지로 중복된 데이터의 저장을 허용하지 않으며, 정렬된 위치에 저장하므로 저장순서를 유지하지도 않는다.
범위검색에 높은 성능을 보이는 만큼 관련된 메서드도 제공하는데 몇가지만 알아보도록 하자.
메서드 | 설명 |
SortedSet subSet( Object fromElement, Object toElement ) |
범위 검색(fromElement와 toElement사이)의 결과를 반환한다. (끝 범위인 toElement는 범위에 포함되지 않는다.) |
SortedSet headSet(Object toElement) | 지정된 객체보다 작은 값의 객체들을 반환 |
SortedSet tailSet(Object fromElement) | 지정된 객체보다 큰 값의 객체들을 반환 |
📔 Reference
[JAVA의 정석 기초편 - 남궁성]
(레드 블랙 트리 참고)
https://zeddios.tistory.com/237
728x90
'☕️ Java > 기본' 카테고리의 다른 글
[Java] ThreadLocal에 대해 (0) | 2022.01.22 |
---|---|
[Java] 애너테이션에 대한 기초 (0) | 2022.01.22 |
[Java] 슈퍼 타입 토큰 (0) | 2022.01.03 |
[Java] 제네릭에 대하여 (타입이레이저, 변성) (2) | 2022.01.02 |
[JAVA] Volatile 이란? (3) | 2021.12.25 |