송민준의 개발노트

HashSet 본문

자료구조

HashSet

송민준 2019. 12. 9. 17:50

HashSet이란?

 순서가 필요없는 데이터를 hash table에 저장한다. set 인터페이스로 구현한 클래스 중 가장 성능이 좋다.

이 외에 성능 순으로 TreeSet(저장된 데이터의 값에 따라 정렬), LinkedHashSet(연결된 목록타입으로 구현, 정렬)이 있다. 중복을 허용하지 않는다.

 

1. HashSet의 상속구조

java.lang.Object -> java.util.AbstractCollection<E> -> java.util.AbstracSet<E> -> java.util.HashSet<E>

 

2. 구현된 인터페이스

 Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E>

 

3. 생성자

 - HashSet()

 - HashSet(int 수용량초기화)

 - HashSet(int 수용량초기화, float 하중량)

   * 하중량(load factor)은 전체 슬롯에서 사용중인 슬롯 비율 -> % 증가할수록 탐사 횟수는 비약적으로 증가함)

 - HashSet(Collection<? extends E> c)

 

메소드 명 설명
boolean add(E e) 제네릭 타입으로 넘어온 객체가 Set구조에 없다면 추가하고 true 반환한다.
boolean addAll(Collection c) 주어진 컬렉션에 저장된 모든 객체들을 추가한다.
void clear() Set에 있는 모든 객체를 삭제한다.
clone HashSet을 복제해서 반환한다.(shallow copy)
boolean contains(Object o) 인자로 전달된 객체를 현 Collecton에서 요소로 가지고 있으면 true 반환한다.
boolean containsAll(Collection c) 인자로 전달된 컬렉션에 모든 객체들을 포함하고 있는지 알려준다.
boolean isEmpty() HashSet이 비어있으면 true 반환한다.
Iterator<E> iterator() Iterator객체로 반환한다.
boolean remove(Object o) Object로 받은 객체를 찾아 삭제한다. 성공 시 true 반환한다.
boolean removeAll(Collection c) 인자값으로 주어진 컬렉션에 저장된 모든 객체와 동일한 것들을 모두 삭제한다.
int size() HashSet에 저장된 요소의 수를 반환한다.
Object[] toArray() 배열의 형태로 반환한다.
Object[] toArray(Object[] a) 인자값으로 주어진 배열에 저장한다.

'자료구조' 카테고리의 다른 글

Priority Queue(우선순위 큐) 정리  (0) 2020.12.13
List(ArrayList, LinkedList)  (0) 2020.02.12