TreeSet集合的第二种排序方式
TreeSet的第二种排序方式:
当元素自身不具备比较性时,或者具备的比较性不是所需要的。
这时就需要让集合自身具备比较性。
定义了比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。
当两种排序都存在时,以比较器为主。
定义一个类,实现Comparator接口,覆盖compare方法。
即: 相当于 在集合中放了一个刻度尺。让元素和刻度尺进行比较。
1.具备比较器的TreeSet集合
在创建TreeSet集合的时候,为该集合指定一个比较器。
TreeSet ts = new TreeSet(new MyCompare());//在创建TreeSet集合的时候,向集合中传入一个比较器。
class MyCompare implements Comparator {
public int Compare(Object o1,Object o2){
Student s1= (Student)o1;
Student s1= (Student)o2;
int num= s1.getName().compareTo(s2.getName());
//当主要条件相同时,比较次要条件
if(num==0){
if(s1.geAge()>s2.geAge)
return 1;
if(s1.geAge()==s2.geAge)
return 0;
return -1;
}
}
}
2.
/*
关于Comparator接口的相关:
java.lang
接口 Comparable<T>
Comparable接口就只要一个方法那就是:int compareTo(T o)
比较此对象与指定对象的顺序。
*/
注意: Java中的大多数类都实现了 Comparator接口。
3.
在日常开发中,我们经常用比较器进行排序。
4.
|
|