首页 > 代码库 > TreeSet,Comparator
TreeSet,Comparator
ThreeSet能够对集合中的对象排序,当TreeSet想集合中加入一个对象时,会把它插入到有序的对象序列中。
ThreeSet自带了一个排序方法,这个方法规定了一般数据的排序规则,如果用户想要规定自己的排序方法,那么久要重写Comparator方法。
下面是一个ThreeSet自带方法排序的例子:
输出的结果为:[A,B,C,D,E,F]
可以看出ThreeSet内部对字符的排序。
那么现在我们定义一个Preson类,按照person类的score属性的升序排序,显然,ThreeSet本身并不知道用户的排序规则,这就需要我们自己定义一个比较器来告诉ThreeSet该以score为标准来排序。
那么如何定义一个比较器呢,我们需要实现comparator接口,并且重写它的compare方法,在该方法中定义自己的比较规则,最后把实现接口的这个比较器传给ThreeSet。
下面我们在Person类里面定义一个比较器:
PersonComparator实现了Comparator这个接口,重写了compare()方法,其中p1.score - p2.socore代表升序排序,反过来就是降序排序。
最后我们把这个自定义的比较器传给ThreeSet,然后用迭代器输出排序后的集合:
最后输出的结果为:
10
20
30
40
TreeSet,Comparator
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。