Java

Java 32. TreeSet

지댕댕 2023. 4. 4. 21:42
728x90

TreeSet은 이진 검색 트리(binary search tree)라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스이다. 이진 검색 트리는 정렬, 검색, 범위검색(range search)에 높은 성능을 보이는 자료구조이며 TreeSet은 이진 검색 트리의 성능을 향상한 트리로 구현되어 있다. Set인터페이스를 구현했으므로 중복된 데이터의 저장을 허용하지 않으며 정렬된 위치에 저장하므로 저장순서를 유지하지도 않는다. 이진트리는 링크드리스트처럼 여러 개의 노드(node)가 서로 연결된 구조로, 각 노드에 최대 2개의 노드를 연결할 수 있으며 루트(root)라고 불리는 하나의 노드에서부터 시작해서 계속 확장해 나갈 수 있다. 위아래로 연결된 두 노드를 부모ㅡ자식 관계에 있다고 하며 위의 노드를 부모 노드, 아래의 노드를 자식 노드라고 한다. 부모ㅡ자식관계는 상대적인 것이며 하나의 부모 노드는 최대 두 개의 자식 노드와 연결될 수 있다. 

이진 검색 트리 (binary search tree)는 1: 모든 노드는 최대 두 개의 자식 노드를 가질 수 있다. 2: 왼쪽 자식노드의 값은 부모노드의 값보다 작고 오른쪽자식노드의 값은 부모노드의 값보다 커야 한다. 3: 노드의 추가 삭제에 시간이 걸린다.(순차적으로 저장하지 않으므로) 4: 검색(범위검색)과 정렬에 유리하다 5: 중복된 값을 저장하지 못한다.

728x90