StudyingRecords/Java

[Java의 정석] Chapter 11-6. 컬렉션 프레임웍(Collections Framework) - HashSet, TreeSet

HoSeongYu 2022. 2. 14. 17:53

정의

  1. HashSet - 순서X, 중복X
    • Set인터페이스를 구현한 대표적인 컬렉션 클래스
    • 순서를 유지하려면, LinkedHashSet클래스를 사용하면 된다.
  2. TreeSet - 범위 탐색, 정렬
    • 범위 검색(from~ to, 10~20)과 정렬에 유리한 컬렉션 클래스
    • HashSet보다 데이터 추가, 삭제에 시간이 더 걸림
    • 이진 탐색 트리(binary search tree)로 구현.
    • 이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖음

HashSet 주요 생성자와 메서드

  • HashSet(Collection c) : 생성자
  • HashSet(int initialCapacity) : 초기용량 정하기 (보통 2배로 늘린다.)
  • HashSet(int initialCapacity, float loadFactor) : 언제 2배로 늘릴것인지
  • addAll(Collection c) : 합집합
  • removeAll(Collection c) : 차집합
  • retainAll(Collection c) : 교집합
  • clear() : 모두삭제
  • contains(Object o) : 해당객체를 포함하고있는지 확인

TreeSet 주요 생성자와 메서드

  • first() : 오름차순일때 제일 작은값
  • last() : 오름차순일때 제일 큰값
  • ceiling(Object o) : 같거나 큰값 중 제일 가까운 값 없으면 null
  • floor(Object o) : 같거나 작은값 중 제일 가까운 값 없으면 null
  • higher(Object o) : 큰값 중 제일 가까운 값 없으면 null
  • lower(Object o) : 작은값 중 제일 가까운 값 없으면 null
  • subSet(Object fromElement, Object toElement) : fromElement<= 출력 < toElement
  • headSet(Object toElement) : 작은값 모두 반환
  • tailSet(Object fromElement) : 같거나 큰값 모두 반환

트리 순회(tree traversal)

이진 트리의 모든 노드를 한번씩 읽는것을 트리 순회라고 한다.

  • 전위 순회(preorder)
  • 후위 순회(postorder)
  • 중위 순회(inorder) : 오름차순으로 정렬된다.
  • 레벨 순회