언어 공부/JAVA_자바

[JAVA / 자바] TreeSet 클래스 사용법

Seunghyun_KO 2022. 3. 20. 09:00
728x90
반응형

TreeSet

  : Set자료형의 특징으로 중복을 허용하지 않으며, 정렬을 지원하는 클래스이다.

  : *레드-블랙 트리(Red-Black Tree)로 구현되어 있다.

* 레드-블랙 트리(Red-Black Tree) : 편향 이진트리의 단점을 보완하기 위한 트리로, 데이터의 삽입/삭제 시 좌우 균형을 맞춰주는 트리

 

선언

import java.util.TreeSet;

import java.util.Collections; //

 

TreeSet <자료형> 변수명 = new TreeSet <>();


정렬

1. 오름차순

TreeSet<자료형> 변수명 = new TreeSet<>();

2. 내림차순

TreeSet<자료형> 변수명 = new TreeSet<>(Collections.reverseOrder());

3. 사용자 정의

TreeSet<자료형> 변수명 = new TreeSet<>(new Comparator<자료형>() {
	@Override
	public int compare(자료형 o1, 자료형 o2) {
		return o1 - o2; // 오름차순
		return o2 - o1; // 내림차순
});

4. 객체 정렬

static class 클래스명 implements Comparable<클래스명> {

	클래스명 클래스변수
	.
	.
	@Override
	public int compareTo(클래스명 변수명) {
		return this.클래스변수 - 변수명.클래스변수;
	}
}

// 트리 선언 시
TreeSet<클래스명> 변수명 = new TreeSet<>();

메서드 (Method)

TreeSet<Integer> tSet = new TreeSet<>();
연산 코드 반환 값
삽입 tSet.add(삽입할 value); 트리에 value가 저장되어있던 경우 = False
트리에 value가 저장되어있지 않던 경우 = True
삭제 tSet.remove(삭제할 value); 트리에 value가 저장되어있던 경우 = True
트리에 value가 저장되어있지 않던 경우 = False
모든 값 삭제 tSet.clear(); -
크기 tSet.size(); 트리의 사이즈
전체 원소 집합 출력 System.out.println(tSet); [원소1, 원소2, ..., 원소n]
정렬 순서 기준 맨 앞 원소 tSet.first(); 정렬 순서 기준 맨 앞 원소
정렬 순서 기준 맨 뒤 원소 tSet.last(); 정렬 순서 기준 맨 뒤 원소
value보다 큰 원소들 중 최솟값 tSet.higher(value); value보다 큰 원소들 중 최솟값
value보다 작은 원소들 중 최댓값 tSet.lower(value); value보다 작은 원소들 중 최댓값
트리가 비어있는지 확인 tSet.isEmpty(); 트리의 사이즈가 0이면 = True
트리의 사이즈가 0보다 크면 = False
트리에 value가 저장되어 있는지 tSet.contains(value); 트리에 value가 저장되어있는 경우 = True
트리에 value가 저장되어있지 않은 경우 = False

 

728x90
반응형