@[TOC]stream
stream
从list里面取id集合出来
goodsListRecords.stream().map(MemberStockupGoodsVO::getMemberStockupGoodsAttributeId).collect(Collectors.toSet())
list对象转listmap
goodsPositionRelDTOList.stream().collect(Collectors.groupingBy(GoodsPositionRelDTO::getMemberStockupGoodsAttributeId));
list对象转map出来
list.stream().collect(Collectors.toMap(MemberStockupGoodsAttribute::getMemberStockupGoodsAttributeId, f-> f));
提取map自定义key vulue
Map<Long, String> forwarderWarehousesMap = forwarderWarehouses.stream().collect(Collectors.toMap(ForwarderWarehouse::getId, ForwarderWarehouse::getAutomaticExpressNoType, (key1, key2) -> key2));
long 转int
List memberIdsInt = memberIds.stream().map(x -> x.intValue()).collect(Collectors.toList());
1.1
Map<Long, UserInfo> userInfoMap = userInfoList.stream().collect(Collectors.toMap(UserInfo::getUserId, userInfo -> userInfo, (k1, k2) -> k1));
userInfoMap.values().forEach(a->System.out.println(a.getUserName()));
list 转 map 使用Collectors.toMap的时候,如果有可以重复会报错,所以需要加(k1, k2) -> k1 (k1, k2) -> k1 表示,如果有重复的key,则保留第一个,舍弃第二个
1.2
/**
- sorted + Comparator.comparing 排序列表,
*/
userInfoList = userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge)).collect(Collectors.toList());
userInfoList.forEach(a -> System.out.println(a.toString()));
System.out.println(“开始降序排序”);
/**
- 如果想降序排序,则可以使用加reversed()
*/
userInfoList = userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge).reversed()).collect(Collectors.toList());
userInfoList.forEach(a -> System.out.println(a.toString()));
Stream stream = Stream.of(“A”, “B”, “C”, “D”);
boolean match = stream.anyMatch(s -> s.contains(“C”));
System.out.println(match);
//输出
true
int sum = Stream.of(1, 2, 3, 4).reduce(0, (a, b) -> a + b);
System.out.println(sum);
long count = userInfoList.stream().filter(user -> user.getAge() > 18).count();