6.Java中ArrayList进行排序总结

文章目录

前言

ArrayList是最常见最频繁我们java编程当中使用的集合类,往往进行集合操作的时候会进行排序操作,本文进行一些总结来方便大家进行操作集合类的时候能够更轻松的排序集合实现业务。

1.基础类型的集合排序:

 @Test
    public  void sortTest(){
        Listlist=new ArrayList<>();
        Listlist2=new ArrayList<>();
        list.add(10);
        list.add(1);
        list.add(9);
        list.add(2);
        Collections.sort(list);
        System.out.println(list);
        Collections.reverse(list);
        System.out.println(list);
        list2.add("2021-06-10 13:56:48");
        list2.add("2021-06-11 13:56:48");
        Collections.sort(list2);
        System.out.println(list2);
        Collections.reverse(list2);
        System.out.println(list2);
    }

此为基础类的排序,正序排序和倒序排序等,使用起来其实是非常方便的。

2.实体类的集合排序传统:

 @Test
    public  void stuSortTest(){

        List stus = new ArrayList<>();
        Stu stu1 = new Stu();
        Stu stu2 = new Stu();
        Stu stu3 = new Stu();
        stu1.setName("张三");
        stu1.setAge(30);

        stu2.setName("李四");
        stu2.setAge(20);

        stu3.setName("王五");
        stu3.setAge(60);

        stus.add(stu1);
        stus.add(stu2);
        stus.add(stu3);
        //对users按年龄进行排序
        Collections.sort(stus, new Comparator() {

            @Override
            public int compare(Stu o1, Stu o2) {
                // 升序
                //return o1.getAge()-o2.getAge();
                //return o1.getAge()-o2.getAge();
                // 降序
                 return o2.getAge()-o1.getAge();
                // return o2.getAge().compareTo(o1.getAge());
            }
        });
        // 输出结果
        System.out.println(stus);

    }

此为常用的比较传统的传递比较器的比较实体类的方法使用。当然如果是多条件的话直接在比较器中compare进行计算排序则可以,基本的比较规则为大于的在前面,小于的在后面。

3.Java8使用流式的排序:

 @Test
    public  void stuSortTest2(){
        List stus = new ArrayList<>();
        Stu stu1 = new Stu();
        Stu stu2 = new Stu();
        Stu stu3 = new Stu();
        stu1.setName("张三");
        stu1.setAge(30);

        stu2.setName("李四");
        stu2.setAge(20);

        stu3.setName("王五");
        stu3.setAge(60);

        stus.add(stu1);
        stus.add(stu2);
        stus.add(stu3);
        //正序排序
        List stuSortAsc= stus.stream().sorted(Comparator.comparing(o->o.getAge())).collect(Collectors.toList());
         //倒序排序
        List stuSortDesc= stus.stream().sorted(Comparator.comparing(Stu::getAge).reversed()).collect(Collectors.toList());
        System.out.println("正序:"+stuSortAsc);
        System.out.println("倒序:"+stuSortDesc);


    }

上面就是java8中流式的集合类通过传递比较字段进行排序达到排序目的。

结尾

上面就是总结的见过的比较常用的集合的排序的方法,其中个人比较推崇的还是java8中流式的排序,已经能够满足大部分的业务场景需求,代码看着比较简洁清楚,如果你也有想法沟通的话欢迎进行留言,或者关注我的公众号:Java时间屋进行交流。

展开阅读全文

页面更新:2024-04-29

标签:升序   目的   字段   前言   结尾   简洁   频繁   场景   常用   传统   类型   操作   业务   基础   方法   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top