Collections - Set(HashSet, TreeSet, LinkedHashSet)

apayaya·2022년 7월 1일
0

Set

  • interface
  • 저장순서 유지되지 않고 중복 없음
  • null 은 1개만 가능
  • 사용자 정의 객체를 담는 용도로 사용할 경우, 클래스를 정의할때 equals, hashCode 메서드 재정의와 Comparable 인터페이스 구현이 필요
  • 구현 클래스 : HashSet, TreeSet

methods

  • add(E e) -> boolean
  • addAll(Collection<? extends E>) -> boolean
  • contains(Object) -> boolean
  • containsAll(Collection<?> c) -> boolean
  • size() -> int
  • iterator() -> Iterator<E>
  • isEmpty() -> boolean
  • retainAll(Collection<?>) -> boolean
  • removeAll(Collection<?>) -> boolean
  • clear() -> void
  • toArray() -> Object[] | T[]
  • remove(Object) -> boolean

HashSet

  • class HashSet<E>
  • JDK 1.2
  • 내부적으로 HashMap<E,Object> map 필드 존재

constructors

  • HashSet()
  • HashSet(int capacity, float loadFactor)

methods

  • add(E e) -> boolean : 내부적으로 map.put(K,V) 호출
  • spliterator() -> Spliterator

TreeSet

  • extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable
  • 검색기능이 강화된 Set 구현 클래스
  • 내부적으로 Binary Search Tree의 일종인 Red Black Tree 구조를 가짐
  • Range Search에 유리한 구조
  • LinkedList 와 비교시, 데이터 삽입과 추가에 오버헤드 존재
  • 검색기능(In-Order Traversal), 정렬기능 우수
  • 저장과 동시에 오름차순으로 정렬
  • TreeSet<T> 일때 T는 반드시 Comparable<T> 의 구현객체로 하고, 아닌경우 생성자에서 Comparable<T> 전달 필수
  • first last lower higher floor ceiling 메소드를 제공하는 Set
  • TreeSet은 NavigableMap<E,Object> m; 필드를 가짐
  • 기본적으로 TreeMap로 구현

methods

  • first() -> E
  • last() -> E
  • pollFirst() -> E : 가장 작은값 + set에서 제거
  • pollLast() -> E : 가장 큰값 + set에서 제거
  • lower(E) -> E : 'E보다 작은' 가장 큰 값
  • floor(E) -> E : 'E와 같거나 작은' 가장 큰 값
  • higher(E) -> E : 'E보다 큰' 가장 작은 값
  • ceiling(E) -> E : 'E와 같거나 큰' 가장 작은 값
  • descendingSet() -> NavigatableSet : 저장된 요소를 역순으로 정렬해 반환
  • descendingIterator() -> Iterator<E> : 내림차순으로 정렬된 Iterator
  • headSet(Object toElement) -> SortedSet : 지정된 객체보다 작은값만
  • headSet(Object toElement, boolean inclusive) -> NavigableSet : 지정된 객체보다 작은값만, 지정객체 존재하면 포함 여부 설정
  • tailSet(Object fromElement) -> SortedSet : 지정객체보다 큰 값만
  • spliterator() -> Spliterator
  • subSet(Object fromElement, Object toElement) -> SortedSet : 범위의 값(from은 포함, to는 포함안됨)
  • subSet(Object fromElement, boolean fromInclusive, Object toElement, boolean toInclusive) -> NavigableSet : 지정객체 포함 여부

LinkedHashSet

  • 저장순서 기억
profile
java 정리

0개의 댓글