第一种方法,就是list中对象实现Comparable接口,代码如下:

public class Person implements Comparable<Person> {private String name;private Integer order;/*** @return the name*/public String getName() {return name;}/*** @param name*            the name to set*/public void setName(String name) {this.name = name;}/*** @return the order*/public Integer getOrder() {return order;}/*** @param order*            the order to set*/public void setOrder(Integer order) {this.order = order;}@Overridepublic int compareTo(Person arg0) {return this.getOrder().compareTo(arg0.getOrder());}}

View Code

public static void main(String[] args) {List<Person> listA = new ArrayList<Person>();Person p1 = new Person();Person p2 = new Person();Person p3 = new Person();p1.setName("name1");p1.setOrder(1);p2.setName("name2");p2.setOrder(2);p3.setName("name3");p3.setOrder(3);listA.add(p2);listA.add(p1);listA.add(p3);Collections.sort(listA);for (Person p : listA) {System.out.println(p.getName());}
}

View Code

第二种方法,就是在重载Collections.sort方法,代码如下:

public class Person {private String name;private Integer order;/*** @return the name*/public String getName() {return name;}/*** @param name*            the name to set*/public void setName(String name) {this.name = name;}/*** @return the order*/public Integer getOrder() {return order;}/*** @param order*            the order to set*/public void setOrder(Integer order) {this.order = order;}}

View Code

public static void main(String[] args) {List<Person> listA = new ArrayList<Person>();Person p1 = new Person();Person p2 = new Person();Person p3 = new Person();p1.setName("name1");p1.setOrder(1);p2.setName("name2");p2.setOrder(2);p3.setName("name3");p3.setOrder(3);listA.add(p2);listA.add(p1);listA.add(p3);Collections.sort(listA, new Comparator<Person>() {public int compare(Person arg0, Person arg1) {return arg0.getOrder().compareTo(arg1.getOrder());}});for (Person p : listA) {System.out.println(p.getName());}}

View Code

两次执行的结果都是:

name1

name2

name3

转载于:https://www.cnblogs.com/longshiyVip/p/5102231.html

Java中对List集合排序的两种方法相关推荐

  1. java中集合的排序_Java中集合排序的两种方法

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...

  2. java数组循环扩容_Java中实现数组动态扩容的两种方法

    Java中实现数组动态扩容的两种方法 java中初始化一个数组需要定义数组的容量,而在我们使用数组时往往会遇到数组容量不够的情况,此时我们就需要通过动态扩容的方式来来根据需求扩大数组的容量. 我们可以 ...

  3. 计算机word降序排列怎么做,word中怎么进行排序的两种方法

    word文档中表格除了作为我们的编辑和展示功能之外,还可以进行排序功能,十分方便,那么下面就由学习啦小编给大家分享下word中进行排序的技巧,希望能帮助到您. word中进行排序方法一: 步骤一:将光 ...

  4. python列表的排序方法_pythonlist排序的两种方法及实例

    本文主要介绍了python list排序的两种方法及实例讲解.具有很好的参考价值,下面一起来看下吧 对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排 ...

  5. Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  6. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  7. Java中Double保留自定义小数位的几种方法

    Java中Double保留自定义小数位的几种方法 在Java语言编程中我们有时候会有保留指定小数位的需求,那应该如何操作呢,下面带来几种方法:(这里的所有方法以保留两位小数位为例) 一. 四舍五入并保 ...

  8. [转]DES加密 java与.net可以相互加密解密两种方法

    [转]原文地址:http://jumpman.javaeye.com/blog/605996 DES加密 java与.net可以相互加密解密两种方法 文章分类:Java编程 通过这个方法可以实现jav ...

  9. Java学习笔记:创建线程的两种方法

    Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程

最新文章

  1. 4模型导出_项目模型规范总结 游戏模型制作的注意事项
  2. Android事件分发机制解析
  3. aix解压tgz_AIX 上压缩与解压缩 各种文件格式原理说明
  4. java不是有效_单选(2分) 以下哪个不是有效的Java变量名?
  5. Requests请求库
  6. java中字符串后加Box_字符串未显示在JavaFX中ComboBox的Tableview上
  7. linux shell编程if语句内判断参数
  8. VScode远程连接linux
  9. iphone ping_如何在iPhone上运行Ping(网络诊断)
  10. 为【桌面右键菜单 - 新建文档】添加快捷键
  11. GitHub 下载单个文件/文件夹
  12. html qq表情插件,【精品】14款优秀的jQuery和CSS3插件及源码
  13. 使用GDK7调试Linux内核之KVM
  14. JavaScript基础复习之数据类型,解读数据类型不为人知的一面
  15. WORDPRESS 网站打不开 error establishing a database connection 、is marked as crashed and should be repa
  16. Xmind8 (update8)破解教程
  17. 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享
  18. [艺术创作]摄影构图的传统法则
  19. DC-DC——CUK斩波电路
  20. 工业级4G路由器模组主板 全网通WiFi插SIM卡就上网 PLC远程控制无线通讯模块

热门文章

  1. 月薪20k的web前端开发程序员,他们都会的这6招
  2. 刚毕业想学习web前端,该怎么学才能最快入门?
  3. java中每个类都有子类,Java中所有的类都是从( )类或其子类派生而来的。
  4. winxp制作服务器,你要知道的WinXP服务器操作系统安装的方法
  5. mysql要将语句反复执行15次_MySQL多表查询疑问
  6. windows服务器迁到_将文件服务器及域控制器从2003迁移至Windows Server 2008 R2
  7. FreeRTOS+STM32F103中断中发送任务通知单片机死机问题
  8. 驱动中的资源共享和临界代码保护
  9. keras笔记-mnist数据集上的简单训练
  10. 在win10在使用cmder代替Linux是怎样的体验