TreeSet을 생성 할 때 Comparator를 지정해주지 않으면 저장하는 객체에
구현된 정렬방식에 따라 정렬하여 저장한다.
TreeSet set1 = new TreeSet();
TreeSet set2 = new TreeSet(new Descending()); //TreeSet(Comparator c)
int[] score = {30,50,10,20,40};
for(int i = 0; i < score.length; i++) {
set1.add(new Integer(score[i]));
set2.add(new Integer(score[i]));
}
class Descending implements Comparator {
public int compare(Object o1, Object o2) {
if(o1 instanceof Comparable && o2 instanceof Comparable) {
Comparable c1 = (Comparable)o1;
Comparable c2 = (Comparable)o2;
return c1.compareTo(c2) * -1; //기본 정렬의 역방식으로 변경 혹은
//c2.compareTo(c1)
} return -1
}
}
- 내림차순으로 변경시 compare()의 매개변수가 Object 이므로 compareTo()를
바로 호출 할 수 없으므로 먼저 Comparable로 형변환 해야함.
출처 : http://blog.naver.com/tarott?Redirect=Log&logNo=70023335279
구현된 정렬방식에 따라 정렬하여 저장한다.
TreeSet set1 = new TreeSet();
TreeSet set2 = new TreeSet(new Descending()); //TreeSet(Comparator c)
int[] score = {30,50,10,20,40};
for(int i = 0; i < score.length; i++) {
set1.add(new Integer(score[i]));
set2.add(new Integer(score[i]));
}
class Descending implements Comparator {
public int compare(Object o1, Object o2) {
if(o1 instanceof Comparable && o2 instanceof Comparable) {
Comparable c1 = (Comparable)o1;
Comparable c2 = (Comparable)o2;
return c1.compareTo(c2) * -1; //기본 정렬의 역방식으로 변경 혹은
//c2.compareTo(c1)
} return -1
}
}
- 내림차순으로 변경시 compare()의 매개변수가 Object 이므로 compareTo()를
바로 호출 할 수 없으므로 먼저 Comparable로 형변환 해야함.
출처 : http://blog.naver.com/tarott?Redirect=Log&logNo=70023335279