java8-stream流的sorted 排序

java8-stream流的sorted 排序

介绍

排序一般按照某个字段进行进行升序或者降序排,我们自己实现排序一般会用冒泡,快排序,二分法等
如果用sorted排序,以前上百行的代码现在只需要几行代码搞定,增强的代码的简洁性

升序

List<Integer> list = Arrays.asList(10,6,  39 14);

List<Integer> filter1 = list.stream()
				.sorted(Comparator.comparing(Integer::intValue))
				.collect(Collectors.toList());

降序reversed()

List<Integer> filter2 = list.stream()
			.sorted(Comparator.comparing(Integer::intValue).reversed())
			.collect(Collectors.toList());

三、多字段排序

关键字thenComparing

1.先以 某维度升序
2.当某维度相同时,在以另一维度升序

List<userInfo> userList3 = userList.stream()
	.sorted(Comparator.comparing(userInfo::getA()).thenComparing(userInfo::getId())
	.collect(Collectors.toList());

拓展,比如我们是判断某集合中对象的某个值在另外一个集合包含的往前排,其它数据再按照某字段进行排序
我们可以将集合先进行判断给包含某字段的对象新增一个字段设置值位1 ,其它的设置为2
然后先对 这个字段进行排序再按照另外的字段排序就可以达到这个效果

四、多字段区分升序降序

关键字thenComparing、Comparator.reverseOrder()

1.先以 某维度升序
2.当 某维度相同时,在以 另一维度降序

Comparator.reverseOrder()

List<userInfo> userList3 = userList.stream()
			.sorted(Comparator.comparing(userInfo::getA()).thenComparing(userInfo::getId(),Comparator.reverseOrder()))
			.collect(Collectors.toList());
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值