loading

프로그래밍/JAVA

[JAVA] TreeSet 개념과 사용법 정리

침착곰 2021. 5. 25. 00:14
반응형

안녕하세요

이번 포스팅에서는 TreeSet에 대해서 알아보겠습니다

 

목차

TreeSet이란?
TreeSet 선언하기
TreeSet 값 추가하기
TreeSet 값 삭제하기
TreeSet 크기 구하기
TreeSet 값 출력하기

 

 


TreeSet이란?

자바의 SortedSet 인터페이스 중 하나입니다

HashSet과 비슷한 구조를 가져서 중복 데이터를 저장하지 않고 저장 순서를 유지하지 않는다는 성질을 가집니다

HashSet과 다른 점은 TreeSet은 이진 탐색 트리(BinarySearchTree) 구조로 되어있습니다

이진 탐색 트리에서 검색능력을 더 향상시킨 레드-블랙-트리로 구현되어 있습니다

 


TreeSet 선언하기

import java.util.Collections;
import java.util.TreeSet;

public class TreeSetDemo {
	public static void main(String[] args)  {
		// Integer 타입으로 오름차순 정렬
		TreeSet<Integer> ts = new TreeSet<>();
		
		// Integer 타입으로 내림차순 정렬
		TreeSet<Integer> ts2 = new TreeSet<>(Collections.reverseOrder());

		// String 타입으로 오름차순 정렬
		TreeSet<String> ts3 = new TreeSet<>();

		// String 타입으로 내림차순 정렬
		TreeSet<String> ts4 = new TreeSet<>(Collections.reverseOrder());
	}
}

TreeSet의 생성방법입니다

생성을 위해서는 java.util.TreeSet 클래스를 import합니다

TreeSet<타입> 변수명 = new TreeSet<>(); 선언하면 자동으로 오름차순 정렬이 되는 TreeSet을 선언합니다

Collections.reverseOrder() 메서드를 사용하면 내림차순 정렬로 바꿀 수 있습니다

Collections를 사용하기 위해서는 java.util.Collections를 import해야합니다

 


TreeSet 값 추가하기

import java.util.TreeSet;

public class TreeSetDemo {
	public static void main(String[] args)  {
		// TreeSet 선언
		TreeSet<Integer> ts = new TreeSet<>();
		
		// 값 추가
		ts.add(5);
		ts.add(4);
		ts.add(3);
		ts.add(2);
		ts.add(1);
		
		System.out.println(ts); // 결과 출력
	}
}

TreeSet의 값을 추가하는 방법입니다

add(Object) 메서드를 사용하여 값을 추가할 수 있습니다

TreeSet은 기본적으로 정렬을 해주기때문에 결과를 출력하면 정렬된 값으로 출력이 됩니다

 

결과

 


TreeSet 값 삭제하기

import java.util.TreeSet;

public class TreeSetDemo {
	public static void main(String[] args)  {
		// TreeSet 선언
		TreeSet<Integer> ts = new TreeSet<>();
		
		// 값 추가
		ts.add(5);
		ts.add(4);
		ts.add(3);
		ts.add(2);
		ts.add(1);
		
		System.out.println(ts); // 결과 출력
		
		ts.remove(4); // 4 삭제
		System.out.println(ts); // 결과 출력

		ts.pollFirst(); // 첫 데이터 삭제
		System.out.println(ts); // 결과 출력

		ts.pollLast(); // 마지막 데이터 삭제
		System.out.println(ts); // 결과 출력

		ts.clear(); // 전체삭제
		System.out.println(ts); // 결과 출력
	}
}

TreeSet에서 값을 삭제하는 방법입니다

remove(Object)를 사용하면 Object에 대한 값만 삭제합니다

Object가 없는 경우 false를 리턴해줍니다

pollFirst(), pollLast() 메서드를 사용하면 맨 처음 데이터와 맨 마지막 데이터를 삭제해줍니다

값을 모두 삭제하고 싶은 경우 clear() 메서드를 사용합니다

 

결과

 


 

TreeSet 크기 구하기

import java.util.TreeSet;

public class TreeSetDemo {
	public static void main(String[] args)  {
		// TreeSet 선언
		TreeSet<Integer> ts = new TreeSet<>();
		
		// 값 추가
		ts.add(5);
		ts.add(4);
		ts.add(3);
		ts.add(2);
		ts.add(1);
		
		System.out.println(ts); // 결과 출력
		System.out.println("TreeSet의 크기는 " + ts.size());
	}
}

TreeSet의 크기를 구하는 방법은 size() 메서드를 사용하여 구할 수 있습니다

TreeSet에 있는 값의 갯수를 출력해줍니다

 

결과

 


TreeSet 값 출력하기

import java.util.Iterator;
import java.util.TreeSet;

public class TreeSetDemo {
	public static void main(String[] args)  {
		// TreeSet 선언
		TreeSet<Integer> ts = new TreeSet<>();
		
		// 값 추가
		ts.add(5);
		ts.add(4);
		ts.add(3);
		ts.add(2);
		ts.add(1);
		
		/* 향상된 for문을 사용하여 출력 */
		for(Integer str : ts)
			System.out.print(str + " ");
		
		System.out.println();
		
		// Iterator를 사용하여 출력 */
		Iterator iter = ts.iterator();
		while(iter.hasNext())
			System.out.print(iter.next() + " ");
	}
}

TreeSet의 값을 출력하는 방법입니다

향상된 for문을 사용하여 출력하거나 Iterator클래스를 사용하여 출력하는 방법입니다

위의 코드를 참고바랍니다

 

결과

 

여기까지 TreeSet의 개념과 사용방법에 대해서 알아봤습니다

추가로 TreeSet의 메서드 및 개념에 대해서 알아보고 싶은 분들은 아래의 사이트를 참고바랍니다!

저도 이 포스팅을 작성하는데 참고한 사이트입니다

https://www.geeksforgeeks.org/treeset-in-java-with-examples/

 

TreeSet in Java - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

반응형
그리드형