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);//추가한 순이 아닌 ㄱ,ㄴ,ㄷ순으로 정렬되어 출력됨
}
}
}