使用TreeSet必须传入比较器方法,常见有两种方式:
1.实现Comparable接口中compareTo方法
例:
/**main**/
TreeSet set=new TreeSet();
//若想添加Person元素信息,需要让Person类实现Comparable接口
set.add(new Person("Lambo",18));
/**Person**/
public class Person implements Comparable{
....
....
@Override
public int compareTo(Object o){
if(o instanceof Person){
Person person=(Person) o;
//返回负数为倒序
return XXX;
} else{
throw new ClassCastException("类型不可转换 ");
}
}
}
2.实现Comparator接口中compare方法
例:
Comparator comparator=new Comparator(){
@Override
public int compare(Object o1, Object o2) {
if(o1 instanceof Person&&o2 instanceof Person ){
Person p1=(Person ) o1;
Person p2=(Person ) o2;
//返回负数为倒序
return XXXX;
}else
{
throw new ClassCastException("类型不可转换 ");
}
}
};
TreeSet set=new TreeSet(comparator );
*注:由于是排序集合,所以应该传入对象都是同一个类对象。