jdk8排序功能

public static void getUser() {
        User u1 = new User();
        User u2 = new User();
        User u3 = new User();
        User u4 = new User();
        u1.setId("1");u1.setUserName("10班");
        u2.setId("13");u2.setUserName("114班");
        u3.setId("1");u3.setUserName("103班");
        u4.setId("333");u4.setUserName("123班");

        //1。 先按id排序,在按name排序
        List<User> list1 = new ArrayList<User>();
        list1.add(u1); list1.add(u2);list1.add(u3);list1.add(u4);
        Long l1 = System.currentTimeMillis();
        Object list11 = list1.stream().
                sorted(Comparator.comparing(User::getId,Comparator.comparingInt(Integer::parseInt)).
                        thenComparing(User::getUserName,Comparator.comparingInt(c -> Integer.parseInt(c.replace("班","")))))
                .collect(Collectors.toList());
        Long l2 = System.currentTimeMillis();
        System.out.println("双排--1:"+list11.toString() + "---:" + (l2-l1));

        //2。 常用
        List<User> list2 = new ArrayList<User>();
        list2.add(u1); list2.add(u2);list2.add(u3);list2.add(u4);
        Long l3 = System.currentTimeMillis();
        list2.sort(Comparator.comparing(User::getId).
                thenComparing(User::getUserName,Comparator.comparingInt(c -> Integer.parseInt(c.replace("班","")))));
        Long l4 = System.currentTimeMillis();
        System.out.println("双排--2:"+list2.toString() + "---:" + (l4-l3));
        // list2.forEach(System.out::println);

        //3。 先按id排序,在按name排序(无效)
        List<User> list3 = new ArrayList<User>();
        list3.add(u1); list3.add(u2);list3.add(u3);list3.add(u4);
        Long l5 = System.currentTimeMillis();
        Collections.sort(list3,Comparator.comparing(User::getId));
        Collections.sort(list3,Comparator.comparing(User::getUserName, Comparator.comparingInt(c -> Integer.parseInt(c.replace("班", "")))));
        Long l6 = System.currentTimeMillis();
        System.out.println("双排--3:"+list3.toString() + "---:" + (l6-l5));

        //4。 先按id排序,在按name排序(无效)
        List<User> list4 = new ArrayList<User>();
        list4.add(u1); list4.add(u2);list4.add(u3);list4.add(u4);
        Long l7 = System.currentTimeMillis();
        list4.sort(Comparator.comparing(User::getId));
        list4.sort(Comparator.comparing(User::getUserName, Comparator.comparingInt(c -> Integer.parseInt(c.replace("班", "")))));
        Long l8 = System.currentTimeMillis();
        System.out.println("双排--4:"+list4.toString() + "---:" + (l8-l7));

        // ----------- 简单ID排序---------------
        // -1
        List<User> listD1 = new ArrayList<User>();
        listD1.add(u1); listD1.add(u2);listD1.add(u3);listD1.add(u4);
        Collections.sort(listD1, new Comparator<User>() {
            @Override
            public int compare(User o1, User o2) {
                return o1.getId().compareTo(o2.getId());
            }
        });
        System.out.println("单排--1:"+listD1);

        // -2
        List<User> listD2 = new ArrayList<User>();
        listD2.add(u1); listD2.add(u2);listD2.add(u3);listD2.add(u4);
        Collections.sort(listD2,(User a, User b) -> {
            return a.getId().compareTo(b.getId());
        });
        System.out.println("单排--2:"+listD2);

        // -3
        List<User> listD3 = new ArrayList<User>();
        listD3.add(u1); listD3.add(u2);listD3.add(u3);listD3.add(u4);
        Collections.sort(listD3,(User a, User b) -> a.getId().compareTo(b.getId()));
        System.out.println("单排--3:"+listD3);

        // -4
        List<User> listD4 = new ArrayList<User>();
        listD4.add(u1); listD4.add(u2);listD4.add(u3);listD4.add(u4);
        Collections.sort(listD4,(a, b) -> a.getId().compareTo(b.getId()));
        System.out.println("单排--4:"+listD4);

        // 常用
        List<User> listD5 = new ArrayList<User>();
        listD5.add(u1); listD5.add(u2);listD5.add(u3);listD5.add(u4);
        Collections.sort(listD5, Comparator.comparing(User::getId));
        System.out.println("单排--5:"+listD5);

        // 常用
        List<User> listD6 = new ArrayList<User>();
        listD6.add(u1); listD6.add(u2);listD6.add(u3);listD6.add(u4);
        listD6.sort(Comparator.comparing(User::getId));
        System.out.println("单排--6:"+listD6);
    }

常用:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值