java stream多条件排序_使用Java8的Stream进行多字段排序以及剔除非空字段排序

packagecom.demrystv.stonestrong.stone.streamTest;2

3 importcom.alibaba.fastjson.JSON;4 importorg.junit.Test;5

6 importjava.util.Arrays;7 importjava.util.Comparator;8 importjava.util.List;9 importjava.util.stream.Collectors;10

11 public classStreamController {12

13 @Test14 public voidstreamSortTest(){15 User user1 = newUser();16 user1.setAge(36);17 user1.setUserName("Bryant");18 user1.setAddress("LA");19 user1.setPhone("11111");20

21 User user2 = newUser();22 user2.setAge(37);23 user2.setUserName("James");24 user2.setPhone("22222");25

26 User user3 = newUser();27 user3.setAge(39);28 user3.setUserName("Harden");29 user3.setAddress("Houston");30 user3.setPhone("33333");31

32 User user4 = newUser();33 user4.setAge(28);34 user4.setUserName("Durant");35 user4.setAddress("NY");36

37 User user5 = newUser();38 user5.setAge(29);39 user5.setUserName("Wade");40 user5.setAddress("Miami");41 user5.setPhone("55555");42

43

44

45 List userList =Arrays.asList(user1, user2, user3, user4, user5);46 List collect1 =userList.stream().sorted(Comparator.comparing(User::getAddress, Comparator.nullsFirst(String::compareTo))).collect(Collectors.toList());47 System.out.println("根据地址正序排序,null的在前面: ");48 System.out.println(JSON.toJSONString(collect1));49 System.out.println("=========================");50 System.out.println();51

52 List collect2 =userList.stream().sorted(Comparator.comparing(User::getAddress, Comparator.nullsLast(String::compareTo))).collect(Collectors.toList());53 System.out.println("根据地址正序排序,null的在后面: ");54 System.out.println(JSON.toJSONString(collect2));55 System.out.println("=========================");56 System.out.println();57

58 List collect3 =userList.stream().sorted(Comparator.comparing(User::getAddress, Comparator.nullsFirst(String::compareTo)).reversed()).collect(Collectors.toList());59 System.out.println("根据地址逆序排序,null的在后面: ");60 System.out.println(JSON.toJSONString(collect3));61 System.out.println("=========================");62 System.out.println();63

64 List collect4 =userList.stream().sorted(Comparator.comparing(User::getAddress, Comparator.nullsFirst(String::compareTo)).65 thenComparing(User::getPhone, Comparator.nullsFirst(String::compareTo)).reversed()).collect(Collectors.toList());66 System.out.println("先根据地址正序排序,再根据电话逆序排序,null的在后面: ");67 System.out.println(JSON.toJSONString(collect4));68 System.out.println("=========================");69 System.out.println();70

71 }72 }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值