美文网首页java基础
Java List的排序

Java List的排序

作者: 韭菜待收割 | 来源:发表于2018-09-20 14:39 被阅读3次

1、List的排序方式

1)list中对象实现Comparable接口,重写compareTo接口,排序的字段进行比较。

//懒,就写一起了
public class MainTest {
    //测试方法
    public static void main(String[] args) throws Exception {
        List<Person> listA = new ArrayList<Person>();
        listA.add(new Person("name2", 2));
        listA.add(new Person("name1", 1));
        listA.add(new Person("name3", 3));
        //升序
        Collections.sort(listA);
        System.out.println("**********升序**********");
        for (Person p : listA) {
            System.out.println(p);
        }
        //降序
        Collections.reverse(listA);
        System.out.println("**********降序**********");
        for (Person p : listA) {
            System.out.println(p);
        }

    }

    static class Person implements Comparable<Person> {

        private String name;
        private Integer order;

        @Override
        public String toString() {
            return "Person{" +
                    "order=" + order +
                    ", name='" + name + '\'' +
                    '}';
        }

        public Person(String name, Integer order){
            this.name = name;
            this.order = order;
        }

        public Integer getOrder() {
            return order;
        }

        @Override
        public int compareTo(Person arg0) {
            //升序
            return this.getOrder().compareTo(arg0.getOrder());
        }
    }
}

2)重载Collections.sort方法

//懒,就写一起了
public class MainTest {

    //测试方法
    public static void main(String[] args) throws Exception {
        List<Person> listA = new ArrayList<Person>();
        listA.add(new Person("name2", 2));
        listA.add(new Person("name1", 1));
        listA.add(new Person("name3", 3));

        System.out.println("**********升序**********");
        //升序
        Collections.sort(listA, new MySort());
        for (Person person : listA) {
            System.out.println(person);
        }
        //降序
        System.out.println("**********降序**********");
        Comparator result = Collections.reverseOrder(new MySort());
        Collections.sort(listA,result);
        for (Person person : listA) {
            System.out.println(person);
        }

        List<Person> listB = new ArrayList<Person>();
        listB.add(new Person("name2", 2));
        listB.add(new Person("name1", 1));
        listB.add(new Person("name3", 3));
        //换一种写法
        Collections.sort(listB, new Comparator<Person>() {
            @Override
            public int compare(Person p1, Person p2) {
                return p1.getOrder().compareTo(p2.getOrder());
            }
        });
        System.out.println("**换一种写法 升序**********");
        for (Person person : listB) {
            System.out.println(person);
        }
    }
    //比较器类
    static class MySort implements Comparator{
        @Override
        public int compare(Object o1, Object o2){
            Person p1 = (Person)o1;
            Person p2 = (Person)o2;
            //升序
            return p1.getOrder() - p2.getOrder();
        }
    }
    //比较对象
    static class Person {

        private String name;
        private Integer order;

        @Override
        public String toString() {
            return "Person{" +
                    "order=" + order +
                    ", name='" + name + '\'' +
                    '}';
        }

        public Person(String name, Integer order){
            this.name = name;
            this.order = order;
        }

        public Integer getOrder() {
            return order;
        }
    }
}

相关文章

  • java8的List排序写法

    java8的List 的自定义排序 通过CreateTime属性排序 List userList = find...

  • 我用的java8

    list to Map (java 8) 分组, 计数 排序 java 8 分区

  • Java字典序排序

    Java中对List进行字典序排序

  • java List.sort()排序功能

    今天用到Java List 排序 记录一下!

  • java 对象数组排序

    java对象List集合的排序(基本类型相似); 方法一:使用for循环的方式来进行对象List集合的排序;方法二...

  • java对List、Set、Map升序、降序排序用法

    下面介绍java中对对List、Set、Map的升序、降序排序的常用写法 1、List排序:数字、字符串都适用 输...

  • jdk1.8

    Java 8 的排序、取值实现List transactionsIds = transactions.parall...

  • Java List排序

    给MyDto的list,按字段getMyDtoColumn倒序排列如果是正序排列,则去掉 reversed()

  • java list排序

    java的list的几种排序写法整理(sort的用法) 版权声明:本文为博主原创文章,未经博主允许不得转载。htt...

  • 知识总结:Java集合对象排序

    1.List排序 这个和数组的排序又不一样了。 其实Java针对数组和List的排序都有实现,对数组而言,你可以直...

网友评论

    本文标题:Java List的排序

    本文链接:https://www.haomeiwen.com/subject/cjqnnftx.html