java 8的一些新用法

1.排序
按升序排 :Collections.sort(shopInfoVO1List, Comparator.comparing(ShopInfoVO1::getDistance));
按降序排: Collections.sort(shopInfoVO1List, Comparator.comparing(ShopInfoVO1::getDistance).reversed());
2.去除对象重复
List uniqueList = marketCouponList.stream()
.collect(Collectors.collectingAndThen(
Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(MarketCouponLogVO::getCouponId))),
ArrayList::new));
3.求和
// 计算店铺中的商品总价格
BigDecimal shopTotalMoney = BigDecimal.ZERO;
goodsTotalMoney = goodsBaseInfoVO1List.
stream().
map(GoodsBaseInfoVO1::getPrice).
reduce(BigDecimal.ZERO, BigDecimal::add);
4.取集合的交集
ListgoodCateIdList=shopCateList.stream().filter(item -> goodsGroupRelCateList.contains(item)).collect(toList());
5.过滤集合的重复元素
List uniqueTreeNodeList=treeNodeList.stream().distinct().collect(Collectors.toList());
6.按条件进行过滤
list.stream().filter(user-> user.getId() > 5 && “1组”.equals(user.group)).collect(Collectors.toList());
7.对集合进行分组
//List 以ID分组 Map<Integer,List>
Map<Integer, List> groupBy = appleList.stream().collect(Collectors.groupingBy(Apple::getId));
System.err.println(“groupBy:”+groupBy);
{1=[Apple{id=1, name=‘苹果1’, money=3.25, num=10}, Apple{id=1, name=‘苹果2’, money=1.35, num=20}], 2=[Apple{id=2, name=‘香蕉’, money=2.89, num=30}], 3=[Apple{id=3, name=‘荔枝’, money=9.99, num=40}]}

猜你喜欢

转载自blog.csdn.net/weixin_39522272/article/details/88533215