HashSet (1)
HashSet - 순서X, 중복X
HashSet은 Set인터페이스로 구현했다.
그래서, 순서를 유지하지않고, 중복도 허용하지 않는다.
Set인터페이스로 구현된 클래스는, HashSet과 TreeSet이 대표적이다.
HashSet
- Set인터페이스를 구현한 대표적인 컬렉션 클래스
- 순서를 유지하려면, LinkedHashSet클래스를 사용하면 된다.
Set이 필요할때는, 가장 일반적인 HashSet을 사용하면 된다.
그런데 만약, 순서를 유지하려면, LinkedHashSet클래스를 사용하면 된다.
TreeSet
- 범위 검색과 정렬에 유리한 컬렉션 클래스
- HashSet보다 데이터 추가, 삭제에 시간이 더 걸림
TreeSet은 범위검색 from~to 검색과 정렬에 유리한 컬렉션 클래스다.
TreeSet은 데이터가 많을수록 HashSet보다 데이터 추가삭제 시간이 더걸린다.
HashSet - 주요 메서드
HashSet의 주요 메서드에 대해 알아보자.
먼저 생성자다. HashSet(Collection c)는 지정된 컬렉션에 모든 객체를 저장한다.
HashSet(int initialCapacity)는 초기용량을 지정해주는 것인데, 컬렉션 클래스는 공간이 부족하면 스스로 공간을 늘리는데, 처음에 크기를 어느정도로 설정할건지를 지정할 때 사용한다.
HashSet(int initialCapacity, float loadFactor)는 HashSet이 공간이 부족하면 보통 2배로 늘리는데,
언제 2배로 늘릴 것인지에 대한 매개변수가 loadFactor다.
예를 들어서 loadFactor가 0.8이면, 80퍼센트 찻을때, *2 하는 것이다.
add(Object o), addAll(Collection c)는 추가하는 메서드이고,
addAll(Collection c)는 추가적으로 합집합을 구할 때 사용한다.
remove(Object o), removeAll(Collection c)는 삭제하는 메서드이다.
그리고, removeAll(Collection c)는 추가적으로 교집합을 구할 때 사용한다.
clear()는 모두삭제 메서드이다.
retainAll(Collection c)는 조건부 삭제로, Collection 에 있는 것만 남기고 삭제한다. 차집합을 구할 때 사용한다.
Set이 집합이므로, 위와 같이 두 집합간의 합집합, 교집합, 차집합을 구하는 메서드들을 가지고 있다.
contains(Object o)는 Set이 매개변수의 객체를 포함하고 있는지를 알려준다.
포함되어 있으면 true를 반환하고, 포함되어있지 않으면 false를 반환한다.
containsAll(Collection c)는 매개변수에 Collection을 받는데, 해당 Collection에 담긴 여러 객체가 모두 포함되어있는지를 물어본다.
iterator()는 컬렉션의 요소를 읽어올 수 있다.
isEmpty()는 비어 있는지 확인할 때 사용하는 메서드다.
size()는 저장된 객체수를 확인할 때 사용한다.
toArray(), toArray(Object[] a)는 Set에 저장되있는 객체를 객체 배열로 반환할 때 사용한다.
[Ex11_9]
[Ex11_10]
'JAVA' 카테고리의 다른 글
TreeSet (1) (0) | 2022.05.02 |
---|---|
HashSet (2) (0) | 2022.05.02 |
Comparator와 Comparable (0) | 2022.05.01 |
Arrays (0) | 2022.04.30 |
Iterator, Enumeration, Map과 Iterator (0) | 2022.04.29 |
댓글
이 글 공유하기
다른 글
-
TreeSet (1)
TreeSet (1)
2022.05.02 -
HashSet (2)
HashSet (2)
2022.05.02 -
Comparator와 Comparable
Comparator와 Comparable
2022.05.01 -
Arrays
Arrays
2022.04.30