前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Collections接口中的sort排序方法注意事项

Collections接口中的sort排序方法注意事项

作者头像
sr
发布2018-08-20 10:09:14
2690
发布2018-08-20 10:09:14
举报
文章被收录于专栏:swag codeswag code
sort(List<T> list)
对指定列表按升序进行排序,列表元素需实现Comparable接口。(例如:String ,Integer)

sort(List<T> list, Comparator<? super T> c) 
列表元素无需实现Comparable接口,但是需要指定比较规则实现类。

两种啥区别的呢:

    第一种使用自身实现了Comparable接口的方法的规则排序,

    第二种按照比较器规则排序,有没有实现接口无所谓,因为有比较器。

比如,员工技能按照编号排序又能按照工资排序,一个排序接口如何支持两种呢?有了比较器接口就不一样了,它不需要在本类上实现,可以编写比较规则实现类。

如汽车比较器可以这样写:

按照速度的比较器

public class CarSpeedComparator implements Comparator<Car>{
  @Override
  public int compare(Car car1, Car car2) {
    return (car1.getSpeed()-car2.getSpeed());
  }
}

按照重量的比较器

public class CarWeightComparator implements Comparator<Car>{
 @Override
 public int compare(Car car1, Car car2) {
 return (car1.getWeight()-car2.getWeight());
 }
}

比较时可以根据场景不同指定不同的比较器

sort(list, CarspeedComparator) 或者sort(list,CarweightComparator)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档