list集合实现自定义排序 您所在的位置:网站首页 自定义字符串类 list集合实现自定义排序

list集合实现自定义排序

#list集合实现自定义排序| 来源: 网络整理| 查看: 265

1.基本数据类型的简单排序 public class Demo01 { public static void main(String[] args) { List list = Arrays.asList(1,5,2,0,-1); Collections.sort(list); System.out.println(list); } }

(1)Collections.sort(list)分析:

@SuppressWarnings("unchecked") public static void sort(List list) { list.sort(null); }

需要继承Comparable,在我们的基本数据类型的包装类中,都是实现了Comparable接口,同时实现了compareTo方法。

2.实体类按照属性排序

(1)自定义类:

//首先必须要实现Comparable接口,并重写compareTo方法--》compareTo是进行排序的一种规范 //一般不建议使用,真实开发中,实体类尽量不要去进行修改 class Emp implements Comparable{ private Integer id; private String name; public Emp() { } public Emp(Integer id, String name) { this.id = id; this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Emp{" + "id=" + id + ", name='" + name + '\'' + '}'; } @Override public int compareTo(Object o) { //需要强制转化 Emp emp = (Emp)o; return this.id.compareTo(emp.id); } } public class Demo01 { public static void main(String[] args) { List list = Arrays.asList(new Emp(5,"张三"),new Emp(2,"王五")); Collections.sort(list); System.out.println(list); } }

和第一个案例的Integer是一样的,只要实现Comparable即可使用Collections.sort方法进行排序。

(2)此方法推荐使用:

public class Demo01 { public static void main(String[] args) { List list = Arrays.asList(new Emp(5,"张三"),new Emp(2,"王五")); Collections.sort(list, new Comparator() { @Override public int compare(Emp o1, Emp o2) { return o1.getId().compareTo(o2.getId()); } }); System.out.println(list); } } ---------------源码分析(Collections)------------------- public static void sort(List list, Comparator c) { list.sort(c); }

可以通过匿名内部类的形式,直接重写compareTo方法。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有