第一种方法,就是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;
} @Override
public int compareTo(Person arg0) {
return this.getOrder().compareTo(arg0.getOrder());
} }
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());
}
}

第二种方法,就是在重载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;
} }
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());
}
}

两次执行的结果都是:

name1

name2

name3

最新文章

  1. Nginx+keepalived双机热备(主主模式)
  2. Oracle ASM
  3. C语言中的位操作(14)--反转比特位
  4. 夺命雷公狗---node.js---22之项目的构建在node+express+mongo的博客项目7之数据的修改
  5. Saving structured data with json
  6. Symfony2 学习笔记之内部构件
  7. Discuz!NT中的Redis架构设计
  8. Android获取ip地址
  9. 编码、解码Html代码
  10. gdal中文路径无法打开问题
  11. 【转】sql语句的优化分析
  12. [转帖]csdn windows 下载整理.
  13. ubuntu16.04——WingIDE安装 操作服务器是一件很好玩的事情
  14. Hive设置变量
  15. SpringMVC和Springboot的区别(网摘)
  16. tomcat的server.xml中的Context节配置
  17. &lt;a&gt;标签中href=&quot;javascript:;&quot;的意思
  18. 源码分析:Java堆的创建
  19. vue.js 源代码学习笔记 ----- 工具方法 debug
  20. javascript大神修炼记(4)——循环

热门文章

  1. viewpager双层嵌套,子viewpager无限循环无法手动滑动
  2. C# String 前面不足位数补零的方法 PadLeft
  3. HW-文件恢复-测试300
  4. (九)Hibernate 检索策略
  5. 解决自定义BackItem与Pop Gesture冲突的问题
  6. LNK1123: 转换到 COFF 期间失败: 文件无效或损坏[汇总]
  7. Entity Framework 学习笔记(1)
  8. 九度OJ 1385 重建二叉树
  9. 现代php开发
  10. 如何在Exe和BPL插件中实现公共变量共享及窗口溶入技术Demo源码