黑马程序员技术交流社区
标题:
TreeSet集合的第二种排序方式
[打印本页]
作者:
沉湎码海
时间:
2017-2-13 07:27
标题:
TreeSet集合的第二种排序方式
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.
作者:
IceLoveInFire丶
时间:
2017-2-13 07:46
厉害了
作者:
xiaoyizi
时间:
2017-2-13 07:55
嗯嗯,可以可以。
作者:
我怕你会哭的
时间:
2017-2-13 12:19
表示看不懂。。求解释。。
作者:
沉湎码海
时间:
2017-2-13 12:21
我怕你会哭的 发表于 2017-2-13 12:19
表示看不懂。。求解释。。
带菜鸟小白飞
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2