JAVA/컬렉션 프레임워크

TreeSet 클래스

김꾸꾸(하트) 2023. 4. 17. 13:44

TreeSet 클래스

정의

TreeSet 클래스는 Set 인터페이스를 구현한 컬렉션 클래스 중 하나이고,

이진 검색 트리 자료구조를 이용해서 정렬된 상태로 요소를 저장하는 클래스

 

 

 

특징

-요소를 추가할 때 자동으로 정렬

-중복된 요소를 허용하지 않음

-null 값을 저장할 수 없음

-String클래스도 정렬방식이 구현되어 있음

 

 

정렬된다는 건?

-숫자는 1,2,3 순

-한글은 ㄱ,ㄴ,ㄷ순

-영어는 A,B,C순

 

 

 

사용하는 이유

  • 검색과 범위 검색(range search)을 빠르게 수행할 수 있기 때문에, 대량의 데이터를 다루는 경우 유용하게 사
  • 요소의 순서가 중요한 경우에 사용

 

 

 

단점

이진 검색 트리 자료구조를 이용하기 때문에,

데이터 추가나 삭제 시 자동으로 재정렬되는 과정이 필요해서

ArrayList나 LinkedList와 같은 리스트(list) 자료구조보다는 속도가 느림

 

 

 

주요메서드

메서드 명 설명
first() TreeSet의 가장 작은 요소를 반환
last() TreeSet의 가장 큰 요소를 반환

그외 add() , remove(), size(), Iterator()로 다른 클래스들과 동일한 메서드를 가짐

 

 

 

    실습     

 

package treeSet;
import java.util.TreeSet;

public class TreeSetTest {

	public static void main(String[] args) {

		//TreeSet클래스의 메서드를 사용하기 위해 객체 생성
		TreeSet<String> treeSet = new TreeSet<String>();
		
		//요소 추가
		treeSet.add("나영석");
		treeSet.add("김제하");
		treeSet.add("다인킴");
		
		
		//요소 꺼내오기
		for(String str : treeSet ) {
			System.out.println(str);//추가한 순이 아닌 ㄱ,ㄴ,ㄷ순으로 정렬되어 출력됨
		}
		
	
	
		
		
	}

}