[Java] 자바 TreeSet 사용법 & 예제 총정리 (tistory.com)
[Java] 자바 TreeSet 사용법 & 예제 총정리
TreeSet이란? JDK 1.2부터 제공되고 있는 TreeSet은 HashSet과 마찬가지로 Set 인터페이스를 구현한 클래스로써 객체를 중복해서 저장할 수 없고 저장 순서가 유지되지 않는다는 Set의 성질을 그대로 가
coding-factory.tistory.com
병원가서 수업을 못들어버렸다 T/T 이분정리 진짜 최고,,,, 제2의 선생님이랄까
TreeSet의 생성방법
java.util.TreeSet 클래스를 import
TreeSet<타입> 변수명 = new TreeSet<>(); 선언하면 자동으로 오름차순 정렬이 되는 TreeSet을 선언
Collections.reverseOrder() 메서드를 사용하면 내림차순 정렬로 바꿀 수 있다.
Collections 를 사용하기 위해서는 java.util.collections를 import 해주어야한다
<값추가>
값을 추가할대는
add(Object) 메서드를 이용
TreeSet은 기본 오름차순 정렬이되어있다
<값 삭제>
remove(Object)
object가 없을 경우 false를 리턴
clear() 메서드 사용하면 모든 값을 삭제
<TreeSet 의 크기 구하기>
.size()메서드를 이용하면 treeset에 있는 값의 갯수를 출력할 수 있다.
선생님이 해주신 예제
package kr.or.ddit.basic;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
public class T06TreeSetTest {
public static void main(String[] args) {
TreeSet<String> ts = new TreeSet<String>();
List<String> abcList = new ArrayList<String>();
//영어 대문자를 문자열로 변환하여 List에 저장하기
for(char ch = 'A';ch <='Z';ch++) {
String temp = String.valueOf(ch);
abcList.add(temp);
}
System.out.println("abcList 자료(섞기전): "+abcList);
Collections.shuffle(abcList);
System.out.println("abcList 자료(섞기후): "+abcList);
for(String str : abcList) {
ts.add(str);
}
System.out.println("TreeSet 자료: "+ts);
//TreeSet에 저장된 자료중 특정한 자료보다 작은 자료를 찾아서 SortedSet으로
//반환하는 메서드가 있다.
// =>headSet(기준값) : 기본적으로 '기준값'은 포함시키지 않는다.
// =>headSet(기준값,논리값) :논리값이 true이면 '기준값'을 포함시킨다.
SortedSet<String> ss1 = ts.headSet("K");
System.out.println("K 이전 자료: "+ss1);//기준값 미포함
System.out.println("k 이전 자료(기준값 포함): "+ts.headSet("K",true));
//'기준값'보다 큰 자료를 찾아 SortedSet으로 반환하는 메서드
// =>tailSet(기준값): 기본적으로 '기준값'을 포함시킨다.
// =>tailSet(기준값, 논리값): 논리값이 false이면 '기준값'을 포함시키지 않는다.
SortedSet<String> ss2 = ts.tailSet("K");
System.out.println("K 이후 자료: "+ss2);
System.out.println("K 이후 자료(기준값 미포함): "+ ts.tailSet("K",false));
//subSet(기준값1, 기준값2) : 기준값1~기준값2 사이의 값을 가져온다.
// (4'기준값1' 포함, '기준값2' 미포함)
//subSet(기준값1,논리값1,기준값2,논리값2) : 각 값을 기준으로 포함여부 설정
System.out.println("K(포함)부터 N(미포함)까지: "+ ts.subSet("K", "N"));
System.out.println("K(포함)부터 N(포함)까지: "+ ts.subSet("K",true, "N",true));
System.out.println("K(미포함)부터 N(미포함)까지: "+ ts.subSet("K",false, "N",false));
System.out.println("K(미포함)부터 N(포함)까지: "+ ts.subSet("K",false, "N",true));
}
}
'고급JAVA' 카테고리의 다른 글
Map (0) | 2022.07.23 |
---|---|
Equals Hashcode (0) | 2022.07.23 |
Hashset (0) | 2022.07.23 |
Comparable / Comparator (0) | 2022.07.23 |
Stack & Queue (0) | 2022.07.23 |