Java Comparator和Comparable
步骤 1 : Comparator
假设Hero有三个属性 name,hp,damage
一个集合中放存放10个Hero,通过Collections.sort对这10个进行排序 那么到底是hp小的放前面?还是damage小的放前面?Collections.sort也无法确定
所以要指定到底按照哪种属性进行排序
这里就需要提供一个Comparator给定如何进行两个对象之间的大小比较
![e13780f17528e6e829d8bfbd5de71960.png](https://i-blog.csdnimg.cn/blog_migrate/f0d7356fa192caa072d05ef3ef42abe0.jpeg)
//Hero.java
步骤 2 : Comparable
使Hero类实现Comparable接口
在类里面提供比较算法
Collections.sort就有足够的信息进行排序了,也无需额外提供比较器Comparator
注: 如果返回-1, 就表示当前的更小,否则就是更大
![31e6a5da017fd5255b5a606845c85a7c.png](https://i-blog.csdnimg.cn/blog_migrate/e20b74cf6c1e3094050f2697f6fd206b.jpeg)
package
练习: 自定义顺序的TreeSet
默认情况下,TreeSet中的数据是从小到大排序的,不过TreeSet的构造方法支持传入一个Comparator
public
通过这个构造方法创建一个TreeSet,使得其中的的数字是倒排序的
答案 :
package