java comparator_Java自学-集合框架 Comparator和Comparable

Java Comparator和Comparable

步骤 1 : Comparator

假设Hero有三个属性 name,hp,damage

一个集合中放存放10个Hero,通过Collections.sort对这10个进行排序 那么到底是hp小的放前面?还是damage小的放前面?Collections.sort也无法确定

所以要指定到底按照哪种属性进行排序

这里就需要提供一个Comparator给定如何进行两个对象之间的大小比较

e13780f17528e6e829d8bfbd5de71960.png
//Hero.java

步骤 2 : Comparable

使Hero类实现Comparable接口

在类里面提供比较算法

Collections.sort就有足够的信息进行排序了,也无需额外提供比较器Comparator

: 如果返回-1, 就表示当前的更小,否则就是更大

31e6a5da017fd5255b5a606845c85a7c.png
package 

练习: 自定义顺序的TreeSet

默认情况下,TreeSet中的数据是从小到大排序的,不过TreeSet的构造方法支持传入一个Comparator

public 

通过这个构造方法创建一个TreeSet,使得其中的的数字是倒排序的

答案 :

package 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值