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;
import javax.print.DocFlavor.STRING;
public class T06TreeSetTest {
public static void main(String[] args) {
//TreeSet은 데이터 저장시에 자동 정렬 기능이 들어가 있다.
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);
}
Collections.shuffle(abcList);
System.out.println("섞은 후 abcList : "+ abcList);
for (String str : abcList) {
ts.add(str);
}
System.out.println("TreeSet 데이터 : "+ ts);
System.out.println();
for (String str : ts) {
System.out.print(str + " ");
}
System.out.println();
System.out.println("=====================================================");
//TreeSet에 저장된 자료 중 특정한 값보다 '작은 자료'를 찾아서 SortedSet으로 변환해주는 메서드
// => headSet(기준값)
// => headSet(기준값, 논리값) : '논리값'이 true 이면 '기준값'을 포함시킨다.
//기본값이 false
SortedSet<String> ss1 = ts.headSet("K"); //기준값
System.out.println("K 이전 자료 : "+ ss1);
System.out.println("K 이전 자료(기준값 포함) : "+ ts.headSet("K",true));
System.out.println("=====================================================");
//'기준값' 보다 '큰 자료'를 찾아 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 사이의 값을 가져온다('기준값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 > 수업' 카테고리의 다른 글
T02GenericClass (0) | 2024.01.24 |
---|---|
T08HashMapTest (0) | 2024.01.23 |
T05 HashSet (0) | 2024.01.23 |
T01~ T04 24.1.20 List&Link (0) | 2024.01.20 |
FREEBOARD2 CRUD (1) | 2024.01.09 |