java自然排序和比较器排序

二者的区别

compareable接口:(自然排序)

如果一个类的元素要想要能够进行自然排序,就必须实现自然排序接口Compareable,重写compareTo(Object o)方法,拿当前对象和o进行比较大小(大返回1,相等返回0,小返回-1)

典型实现案例:

BigDecimal、BigInteger 以及所有的数值型对应的包装类:按它们对应的数值大小进行比较
Character:按字符的 unicode值来进行比较
Boolean:true 对应的包装类实例大于 false 对应的包装类实例
String:按字符串中字符的 unicode 值进行比较
Date、Time:后边的时间、日期比前面的时间、日期大

compareator接口:(外部比较器)

集合中需要排序的对象无必需实现Compareator接口,可在外部重写compare(Object o1,Object o2)方法,拿o1和o2进行比较大小(大返回1,相等返回0,小返回-1)

重点介绍下Compareator

首先他是函数式接口,可以通过lambda进行简化写法 ,其次是之所以提供比较器排序接口,是因为有时需要对同一对象进行多种不同方式的排序,这点自然排序 Comparable 不能实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值