=> headSet(기준값) : 기본적으로 '기준값'은 포함시키지 않는다.
=> headSet(기준값, 논리값) : 논리값이 true이면 '기준값' 포함.
=> '기준값'보다 큰 자료를 찾아 SortedSet으로 반환하는 메서드.
=> tailSet(기준값) : 기본적으로 '기준값'은 포함된다.
=> tailSet(기준값, 논리값) : 논리값이 false이면 '기준값' 포함하지 않음.
=> subSet(기준값1, 기준값2)
: 기준값1~기준값2 사이의 값을 가져옴 ('기준값1'포함, '기준값2' 미포함)
=> subSet(기준값1, 논리값1, 기준값2, 논리값2)
: 각 기준값을 포함할 지 여부를 설정한다.(논리값이 true이면 포함)
public class T07_SetTest {
public static void main(String[] args) {
TreeSet<String> ts = new TreeSet<String>();
// Set<String>타입으로 객체화하면 Set에 해당한 메서드만
//사용할 수 있어서 TreeSet<String>타입으로 !
//자바 p.152
//영어 대문자를 문자열로 변환하여 TreeSet에 저장하기
for(char ch='Z'; ch>='A'; ch--) {
String temp = String.valueOf(ch);
ts.add(temp);//add시키는 시점에 바로 자동정렬이 되어진다.
}
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 사이의 값을 가져옴
// ('기준값1'포함, '기준값2' 미포함)
//subSet(기준값1, 논리값1, 기준값2, 논리값2) :
//각 기준값을 포함할 지 여부를 설정한다.(논리값이 true이면 포함)
System.out.println("K(포함)부터 N(미포함)까지 :"
+ts.subSet("K", "N"));// 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));
}
}