有的时候,我们需要对获取的list集合进行排序,然后输出。那么我们一般会用到Collections.sort。


用Collections.sort方法对list排序有两种方法

 第一种是list中的对象实现Comparable接口,如下:

[java] view plain copy

  1. /**

  2. * 根据order对User排序

  3. */

  4. public class User implements Comparable<User>{

  5. private String name;

  6. private Integer order;

  7. public String getName() {

  8. return name;

  9. }

  10. public void setName(String name) {

  11. this.name = name;

  12. }

  13. public Integer getOrder() {

  14. return order;

  15. }

  16. public void setOrder(Integer order) {

  17. this.order = order;

  18. }

  19. public int compareTo(User arg0) {

  20. return this.getOrder().compareTo(arg0.getOrder());

  21. }

  22. } 测试一下:

  23. public class Test{

  24. public static void main(String[] args) {

  25. User user1 = new User();

  26. user1.setName("a");

  27. user1.setOrder(1);

  28. User user2 = new User();

  29. user2.setName("b");

  30. user2.setOrder(2);

  31. List<User> list = new ArrayList<User>();

  32. //此处add user2再add user1

  33. list.add(user2);

  34. list.add(user1);

  35. Collections.sort(list);

  36. for(User u : list){

  37. System.out.println(u.getName());

  38. }

  39. }

  40. }


输出结果如下
 a
 b

第二种方法是根据Collections.sort重载方法来实现,例如:

[java] view plain copy

  1. /**

  2. * 根据order对User排序

  3. */

  4. public class User { //此处无需实现Comparable接口

  5. private String name;

  6. private Integer order;

  7. public String getName() {

  8. return name;

  9. }

  10. public void setName(String name) {

  11. this.name = name;

  12. }

  13. public Integer getOrder() {

  14. return order;

  15. }

  16. public void setOrder(Integer order) {

  17. this.order = order;

  18. }

  19. }

  20. 主类中这样写即可(HastSet——>List——>sort进行排序):

  21. public class Test {

  22. public static void main(String[] args) {

  23. User user1 = new User();

  24. user1.setName("a");

  25. user1.setOrder(1);

  26. User user2 = new User();

  27. user2.setName("b");

  28. user2.setOrder(2);

  29. Set<User> Hset = new HashSet<User>(); //set不能存放重复的对象

  30. Hset.add(user2);

  31. Hset.add(user1);

  32. List<User> list = new ArrayList<User>();

  33. list.addAll(Hset);

  34. Collections.sort(list,new Comparator<User>(){

  35. public int compare(User arg0, User arg1) {

  36. return arg1.getOrder().compareTo(arg0.getOrder());

  37. }

  38. });

  39. for(User u : list){

  40. System.out.println(u.getName());

  41. }

  42. }

输出结果如下:

a
b


默认为升序,将。return arg0.getOrder().compareTo(arg1.getOrder());    改为:
return arg1.getOrder().compareTo(arg0.getOrder());   
就成降序的了。


      本文转自建波李 51CTO博客,原文链接:http://blog.51cto.com/jianboli/1890628,如需转载请自行联系原作者



java List 排序 Collections.sort()相关推荐

  1. java List 排序 Collections.sort() 对 List 排序

    2019独角兽企业重金招聘Python工程师标准>>> //一个POJO例子 class User {  String name;  String age;    public Us ...

  2. JAVA-List排序-Collections.sort()-对象数组(集合)根据某一属性排序

    JAVA-List排序-Collections.sort() 当我们想对一个对象数组(集合)根据某一属性进行排序时,我们可以使用list中的Collection.sort(),这是一种较快捷的方式. ...

  3. JAVA对list集合进行排序Collections.sort()

    对一个集合中的对象进行排序,根据对象的某个指标的大小进行升序或降序排序.代码如下: // 进行降序排列Collections.sort(list, new Comparator<ResultTy ...

  4. ht-8 对arrayList中的自定义对象排序( Collections.sort(ListT list, Comparator? super T c))...

    1 package com.iotek.set; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import ja ...

  5. 集合排序 Collections.sort用法

    大半夜,一同学来问这段代码.问了三个问题. 一,这个排序Sort()怎么用?  二,接口作为方法的参数是什么意思? 三,入参直接new Comparator(){}是怎么回事? 先回答第二,三个问题: ...

  6. list排序(Collections.sort())

    Collections.sort(userList, new Comparator<User>() {@Overridepublic int compare(User o1,User o2 ...

  7. 深入分析集合List的排序Collections.sort

    List接口本身未提供sort的方法. 在jdk中提供了一个集合操作工具类Collections来操作集合. 查看Collections类,可以发下如下两个方法: static <T exten ...

  8. Collections.sort()自定义排序方式

    Java中Collections.sort()的使用! 在日常开发中,很多时候都需要对一些数据进行排序的操作.然而那些数据一般都是放在一个集合中如:Map ,Set ,List 等集合中.他们都提共了 ...

  9. Collections.sort对List排序的两种方法

    一.Collections.sort的简单使用 说到List的排序,第一反应当然是使用Collections.sort,方便简单.下面实现一下~~ private void sortStrings() ...

  10. Collections.sort方法对list排序的两种方式

    最近在工作中用到对地震等各种条件的排序,这里刚好用到了这个方法,我用的第二种方法   下面请参考 Collections.sort( )分为两部分,一部分为排序规则,一部分为排序算法 . 规则用来判断 ...

最新文章

  1. 数据分析之全国热门景点分析
  2. PHP array_intersect_uassoc
  3. Viterbi 算法无线通信信号处理Demo
  4. Linux初学(CnetOS7 Linux)之切换命令模式和图形模式的方法
  5. Redis进阶-核心数据结构进阶实战
  6. 迷宫pascal程序
  7. 【学习笔记】比较分别用prim和kruskal实现最小生成树和算法优化方案
  8. mysql_数据备份和迁移(Windows)
  9. 澎思科技获IDG资本数千万元Pre-A轮融资,推出AI安防全场景软硬件解决方案
  10. JDBC batch批处理Statement executeBatch 具体解释
  11. 使用google analytics(分析)监测百度竞价关键词效果(网址构建工具)
  12. BZOJ 4568 幸运数字
  13. 微信文章投诉模板html,微信小程序模板消息填坑
  14. “select count (1)”是什么意思?
  15. 重磅:Mobileye官宣推迟IPO,营收增速放缓、市场竞争加剧
  16. Win10 关闭Bitlocker,Bitlocker解密进度条始终卡在96%的解决方法
  17. 机器学习梯度下降法应用波士顿房价预测
  18. 严格递增和非严格递增最长递增子序列长度
  19. XCTF攻防世界BABYRE逆向
  20. surface pro3深度linux,Microsoft Surface Pro 3 (简体中文)

热门文章

  1. BZOJ 1878: [SDOI2009]HH的项链【莫队】
  2. ModelSim之命令行仿真入门
  3. goto语句会引起程序混乱?使用goto解决实际问题
  4. C# WinForm窗体上的按钮结束回车确认
  5. ORACLE执行计划入门
  6. luogu2014 选课
  7. Git配置全局用户名
  8. richtextbox 调用 selectAll() 之后执行Ctrl+C抛异常
  9. WordPress超级基本教程(转)
  10. Yii Framework的process flow分析