StudyingRecords/Java
[Java의 정석] Chapter 11-6. 컬렉션 프레임웍(Collections Framework) - HashSet, TreeSet
HoSeongYu
2022. 2. 14. 17:53
정의
- HashSet - 순서X, 중복X
- Set인터페이스를 구현한 대표적인 컬렉션 클래스
- 순서를 유지하려면, LinkedHashSet클래스를 사용하면 된다.
- 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) : 오름차순으로 정렬된다.
- 레벨 순회