Java集合排序

集合排序

java.util.Collections

对集合的整数或字符串进行排序Collections.sort(list);

Comparator接口

boolean equals(Object obj)指示某个其他对象是否“等于”此Comparator

此方法可以被Object类中的equals方法覆盖,不必重写;

实现Comparator接口,重写compare方法,例(按name排序):

//降序排序调换name2和name1即可

int compare(T o1,To2) 比较用来排序的两个参数

or<or,返回负整数

o1==o2,返回0

o1>o2,返回正整数

传入要排序的集合对象和实现接口类的对象即可完成排序

如果要按照其他属性排序,再定义一个接口的实现类

Comparable接口

java.lang.Comparable

int compareTo(T o)


跟Comparator的区别:在定义要排序的类时就实现该接口

调用sort方法排序

compareTo方法

Comparator和Comparable的区别

5-3 Comparable和Comparator的区别
前面我们已经学习过Comparator和Comparable接口的使用,下面来总结一下二者的区别。
1、Comparator接口位于java.util包下,而Comparable接口位于java.lang包下
2、对于Comparator接口,可以看到它的compare()方法的参数是两个对象,比如我们队Cat类进行比较,那么这里就是两个
要比较的Cat类的对象,所以可以有一个单独的类实现Comparator

对于Comparable接口,它的方法只有一个对象作为参数,所以要比较的类需要实现Comparable接口,将当前对象与方法参
数中的对象进行比较。

因此,如果使用Comparator接口,那么要比较的类和实现Comparator接口的类可以分开,如果使用Comparable接口,那么
要比较的类就要实现Comparable接口才可以。
3、关于应用场景
一般情况下如果对某个类进行排序,比如Cat类,如果使用Comparable接口的方式,那么Cat类需要实现Comparable接口。
如果Cat类通过Comparable接口的方式实现排序,比如通过name排序了。那么我们还希望通过age进行排序,这时不希望
修改Cat类,那此时就需要使用Comparator接口了
因此,Comparable接口可以作为实现类的默认排序算法,Comparator接口则用于一个类的扩展排序

TreeSet

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摘星喵Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值