sussa
컴퓨터가 할 일은 컴퓨터가.
sussa
전체 방문자
오늘
어제

블로그 메뉴

    • 분류 전체보기 (58)
      • Language (58)
        • JAVA (58)

    공지사항

    인기 글

    태그

    • Instance
    • 다형성
    • Database
    • Method
    • 자료구조
    • 조건문
    • Til
    • spring
    • binaryTree
    • Thread
    • inheritance
    • DI
    • 개발자
    • Web
    • singleton
    • 최종연산
    • Algorithm
    • 재귀
    • CSS
    • Class
    • HTML
    • 캡슐화
    • Stream
    • 상속
    • java
    • BinarySearchTree
    • 웹개발종합반
    • 스파르타코딩클럽
    • recursion
    • tree

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    sussa

    컴퓨터가 할 일은 컴퓨터가.

    Java Class TreeSet(Interface Set)
    Language/JAVA

    Java Class TreeSet(Interface Set)

    2022. 8. 28. 22:43

    🎯 목표 : TreeSet의 활용 방법 이해

    📒 TreeSet

    이진 탐색 트리(Binary Search Tree)

    ❗특징

    • 범위 검색과 정렬에 유리한 이진 탐색 트리로 구현
    • LinkedList 처럼 각 요소(node)가 나무 형태로 연결된 구조
    • 모든 노드가 최대 두개의 하위 노드를 가지고 있다(부모 자식 관계)
    • 값을 저장할때 부모 노드보다 작으면 왼쪽 크면 오른쪽에 저장한다.
    • 중복된 값은 저장할수 없다.
    • HashSet보다 데이터 추가 삭제에 상대적으로 시간이 오래걸린다. - 반복적인 비교 후 저장.
    • 각 노드들은 아래 클래스를 인스턴스화 된 인스턴스들이다.
    class Node {
    	Object element; // 주소값을 저장하는 참조변수 
    	Node left;      // 왼쪽 노드의 주소값을 저장하는 참조변수
    	Node right;     // 오른쪽 노드의 주소값을 저장하는 참조변수
    }

    📌 TreeSet의 생성자와 메소드

    생성자와 여러 메소드 출처 : 자바의 정석
    범위 검색 메소드 출처 : 자바의 정석

     

    📌 예제 1

    • TreeSet은 기본 정렬기준은  오름차순이다.
    import java.util.*;
    
    class TreeSetStudy {
        public static void main(String[] args) {
            Set set = new TreeSet();
    
            for (int i = 0; set.size() < 6 ; i++) {
                int num = (int)(Math.random()*45) + 1;
                set.add(num);  // set.add(new Integer(num));
            }
            // TreeSet의 기본 정령 기준은 오름차순이다.
            System.out.println(set);
        }
    }
    출력값
    [6, 10, 13, 17, 24, 34] 숫자 랜덤 출력

     

    📌 예제 2

    • 기본 정렬 기준은 오름차순 - 사전순으로 정렬되며, subSet의 검색 범위의 b~d 중 d의 값은 포함하지 않는다.
    import java.util.*;
    
    class TreeSetStudy2 {
        public static void main(String[] args) {
            TreeSet set = new TreeSet();
    
            String from = "b";
            String to	= "d";
    
            set.add("flow");      set.add("Apple");    set.add("bat");
            set.add("cow");      set.add("Car");      set.add("disc");
            set.add("dark");    set.add("delete");    set.add("Black");
            set.add("elephant"); set.add("elevator"); set.add("green");
            set.add("flower");
    
            System.out.println(set);  // 자동 사전 정렬 순서대로(오름차순) 정렬된다.
            System.out.println("range search : from " + from  +" to "+ to);
            System.out.println("result1 : " + set.subSet(from, to)); // b 에서 d 사이의 요소를 찾는다 "d는 제외한다"
            System.out.println("result2 : " + set.subSet(from, to + "zzz"));// b 에서  d+zzz = "dzzz" 까지 찾는다
        }
    }
    [Apple, Black, Car, bat, cow, dark, delete, disc, elephant, elevator, flow, flower, green]
    range search : from b to d
    result1 : [bat, cow]
    result2 : [bat, cow, dark, delete, disc]

     

    📌 예제 3

    • headSet은 정해진 요소를 포함하지 않고 작은것을 검색하며, tailSet은 정해진 요소를 포함하여 검색한다.
    import java.util.*;
    
    class TreeSetStudy3 {
        public static void main(String[] args) {
            TreeSet set = new TreeSet();
            int[] score = {80, 95, 50, 35, 45, 65, 10, 100};
    
            for(int i=0; i < score.length; i++)
                set.add(score[i]);
            System.out.println(set);
            System.out.println("50 > " + set.headSet(50));
            System.out.println("50 <= "  + set.tailSet(50));
        }
    }
    [10, 35, 45, 50, 65, 80, 95, 100]
    50 > [10, 35, 45]
    50 <= [50, 65, 80, 95, 100]

     

    'Language > JAVA' 카테고리의 다른 글

    Java Class Collections  (0) 2022.08.29
    Java HashMap (Interface Map)  (0) 2022.08.29
    Java Class HashSet (Interface Set)  (0) 2022.08.28
    Java Comparator 와 Comparable  (0) 2022.08.28
    Java Class Arrays  (0) 2022.08.28
      'Language/JAVA' 카테고리의 다른 글
      • Java Class Collections
      • Java HashMap (Interface Map)
      • Java Class HashSet (Interface Set)
      • Java Comparator 와 Comparable
      sussa
      sussa
      Efforts to take on a challenge

      티스토리툴바