1、先来个简单的,上代码
//list排序
public static void listsort5(){
List listarr = new ArrayList<>();
listarr.add(1);
listarr.add(3);
listarr.add(5);
listarr.add(7);
listarr.add(2);
listarr.add(4);
listarr.add(6);
System.out.println("list排序前"+listarr);
Collections.sort(listarr);
System.out.println("list排序后"+listarr);
}
程序运行结果:
list排序前[1, 3, 5, 7, 2, 4, 6]
list排序后[1, 2, 3, 4, 5, 6, 7]
2、list参数类型相对复杂的排序
public static void listsort6(){
List listarr = new ArrayList<>();
listarr.add(new User("wuhuixing","16"));
listarr.add(new User("shaolijie","10"));
listarr.add(new User("jizhonghe","20"));
listarr.add(new User("zhangguohao","10"));
Collections.sort(listarr);//排序方法
System.out.println("排序后:"+listarr);
}
//实体类 实现Comparable接口 重写compareTo方法实现排序
static class User implements Comparable<User>{
private String username;
private String userage;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserage() {
return userage;
}
public void setUserage(String userage) {
this.userage = userage;
}
public User(String username,String userage){
this.username=username;
this.userage=userage;
}
@Override
public String toString() {
return "User [username=" + username + ", userage=" + userage + "]";
}
@Override
public int compareTo(User o) {
return this.userage.compareTo(o.getUserage());
}
}
程序运行后输出:
排序后:[User [username=shaolijie, userage=10], User [username=zhangguohao, userage=10], User [username=wuhuixing, userage=16], User [username=jizhonghe, userage=20]]
总结:以上就是list排序经常用的几种方法,两种方法都是通过实体实现Comparable接口并重写compareTo方法,第一种方式之所以没实现接口并实现compareTo方法,因为我们list中的值是Integer类型的,通过查看Interger类源码可以看到,java已经帮我们实现好了,所以不用再次写!