Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

TreeSet 본문

Java/JAVA2

TreeSet

빌드이너프 2023. 7. 19. 22:31

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의 순서로 데이터를 저장

 

 

'Java > JAVA2' 카테고리의 다른 글

HashMap  (0) 2023.07.23
TreeSet의 주요 생성자와 메서드  (0) 2023.07.23
HashSet 2  (0) 2023.07.17
HashSet 1  (0) 2023.07.16
Arrays  (0) 2023.07.14