728x90
- 이진 탐색 트리로 구현
- 범위 검색과 정렬에 유리한 컬렉션 클래스
- 이진 트리는 모든 노드(요소)가 최대 2개의 하위 노드까지만 가질 수 있음
- in-order(중위순회) 방식을 가짐
이진 탐색 트리
자식을 최대 2개까지만 갖고 부모보다 작은 값은 왼쪽, 큰 값은 오른쪽에 저장하는 트리
데이터가 많을 수록 값의 크기 비교에 필요한 횟수가 늘어나 추가 및 삭제에 시간이 많이 걸림
트리 순회
pre-order(전위순회) : 부모를 읽고 자식을 읽는 순회
post-order(후위순회) : 자식을 읽고 부모를 읽는 순회
in-order(중위순회) : 왼쪽자식-부모-오른쪽자식 노드 순으로 읽는 순회. 오름차순으로 정렬됨
level-order : 위에서부터 왼쪽에서 오른쪽으로 읽는 순회
생성자
TreeSet();
TreeSet(Collection c); // 주어진 컬렉션 저장하는 트리 생성
TreeSet(Comparator comp); // 주어진 정렬기준으로 정렬하는 트리 생성
메소드
first(), last()
정렬된 순서에서 처음이나 마지막 객체를 반환
ceiling()
올림. 지정된 객체와 같은 객체를 반환하고 없으면 큰 값을 가직 객체 중 가장 까가운 객체를 반환 (없으면 null)
floor()
버림. 지정된 객체와 같은 객체를 반환하고 없으면 작은 값을 가직 객체 중 가장 까가운 객체를 반환 (없으면 null)
higher(), lower()
지정된 객체보다 큰 값/작은 값을 가진 객체 중 제일 가까운 값의 객체를 반환하고 없으면 null 반환
subSet(시작범위, 끝범위)
범위 검색의 결과를 반환하고 끝 범위는 포함되지 않음
headSet()
지정된 객체보다 작은 값의 객체들을 반환
tailSet()
지정된 객체보다 큰 값의 객체들을 반환
주의
TreeSet은 추가하려는 객체가 정렬기준을 가지고 있던가 따로 비교 기준을 생성자에 매개변수로 줘야 함
'Java > Notion' 카테고리의 다른 글
컬렉션 프레임워크 - Collections 클래스 (0) | 2023.05.01 |
---|---|
Map - HashMap / Hashtable (0) | 2023.05.01 |
Set - HashSet (0) | 2023.04.30 |
Comparator / Comparable (0) | 2023.04.30 |
Arrays (0) | 2023.04.30 |