예제 1
public static void main(String[] args){
Set set = new TreeSet(); // 정렬 필요 없음. 기본 생성자.
// Set set = new HashSet(); // 정렬 필요
for(int i = 0; set.size() < 6; i++) {
int num = (int)(Math.random()*45) + 1;
set.add(num); // set.add(new Integer(num));
// Integer class가 가진 정렬기준을 이용하므로 TreeSet(); 기본 생성자 선언 OK
}
System.out.println(set); // TreeSet은 정렬 O
}
비교 기준 예제 - 객체가 비교 기준을 가지고 있던지, TreeSet에 비교 기준을 제공해야 한다.
예제 2 - TreeSet에 비교 기준 제공한 경우
public class practice {
public static void main(String[] args){
// Test class에 비교 기준 없으므로 TestComp()와 같이 비교 기준 제공해야 함
Set set = new TreeSet(new TestComp()); // 생성자에 정렬기준 제공
set.add(new Test());
set.add(new Test());
set.add(new Test());
System.out.println(set);
}
}
class Test {} // 비교 기준이 없음.
class TestComp implements Comparator{
@Override
public int compare(Object o1, Object o2) {
return 1; // return 0;, return -1;
}
}
예제 3 - 객체가 비교 기준을 가진 경우
public class practice {
public static void main(String[] args){
Set set = new TreeSet(); // Test 객체가 비교 기준을 가진 경우 기본 생성자 선언 OK
set.add(new Test());
set.add(new Test());
set.add(new Test());
System.out.println(set);
}
}
class Test implements Comparable{
@Override
public int compareTo(Object o) {
return 1; // return 0;, return -1;
}
}