Java中对List集合排序的两种方法
2024-10-10 12:06:35
第一种方法,就是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
最新文章
- Nginx+keepalived双机热备(主主模式)
- Oracle ASM
- C语言中的位操作(14)--反转比特位
- 夺命雷公狗---node.js---22之项目的构建在node+express+mongo的博客项目7之数据的修改
- Saving structured data with json
- Symfony2 学习笔记之内部构件
- Discuz!NT中的Redis架构设计
- Android获取ip地址
- 编码、解码Html代码
- gdal中文路径无法打开问题
- 【转】sql语句的优化分析
- [转帖]csdn windows 下载整理.
- ubuntu16.04——WingIDE安装 操作服务器是一件很好玩的事情
- Hive设置变量
- SpringMVC和Springboot的区别(网摘)
- tomcat的server.xml中的Context节配置
- <;a>;标签中href=";javascript:;";的意思
- 源码分析:Java堆的创建
- vue.js 源代码学习笔记 ----- 工具方法 debug
- javascript大神修炼记(4)——循环