충분히 쌓여가는
TreeSet 본문
TreeSet - 범위 탐색, 정렬
이진 탐색 트리(binary search tree)로 구현, 범위 탐색과 정렬에 유리
이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖는다
각 요소(node)가 나무(tree)형태로 연결(LinkedList의 변형)
class TreeNode {
TreeNode left; // 왼쪽 자식노드
Object element; // 저장할 객체
TreeNode right; // 오른쪽 자식노드
}
이진 탐색 트리(binary search tree)
부모보다 작은 값은 왼쪽 큰 값은 오른쪽에 저장
단점: 데이터가 많아질 수록 추가, 삭제에 시간이 더 걸림(비교 횟수 증가)
TreeSet - 데이터 저장과정
boolean add(Object o) <- 저장할 객체
add 메서드 호출하면 add 메서드 내에서 ① equals(), ② hashCode() 호출한다
HashSet은 equals(), hashCode()로 비교, TreeSet는 compare()를 호출해서 비교
TreeSet에 7, 4, 9, 1, 5의 순서로 데이터를 저장