jdk1.8日常使用示例

jdk1.8日常使用示例

//1、List轉Map
List<RegionVO> listVO = Lists.newArrayList();
//todo賦值
Map<String, RegionVO> resultMap = listVO.stream().collect(Collectors.toMap(RegionVO::getId, Function.identity()));

//2、List轉Map,分組
List<ContractPathDTO> listPath=Lists.newArrayList();
//todo賦值
 Map<String, List<ContractPathDTO>> mapPath = listPath.stream().collect(Collectors.groupingBy(ContractPathDTO::getStartEndKey));




List<AbstractObjectInfo> abstractObjectInfos =Lists.newArrayList();
//todo賦值

Map<Long, AbstractObjectInfo> objectInfoMap = abstractObjectInfos.stream()
        .collect(StreamCollectors.toHashMap(AbstractObjectInfo::getAbstractObjectUkid, Function.identity()));

//3、List轉Set
List<StorageView> storageViews = Lists.newArrayList();
//todo賦值
Set<Long> businessIds = storageViews.stream().map(StorageView::getGoodsOwnerUkid).collect(Collectors.toSet());



4、List 求和(整數)
List<SwStorageDetail> swStorageDetails = Lists.newArrayList();
//todo賦值
//商品總數
long goodsTotal = swStorageDetails.stream().mapToLong(SwStorageDetail::getGoodsAmount).sum();


//5、List 求和(整數)BigDecimal 類型數據求和,使用reduce
參考https://www.cnblogs.com/yangzhenlong/p/8378029.html
BigDecimal add = list.stream().map(User::getHeight).reduce(BigDecimal.ZERO, BigDecimal::add);



//6. 過濾出所有參數類型爲入參的參數
List<GwServiceParamDTO> iNParamList = gwServiceParamDTOList.stream()
        .filter(a -> a.getParamInoutype() == IN_PARAM_TYPE).collect(Collectors.toList());

//7.Map賦值

 Map<Long, Set<ContainerDo>> contractContainerMap = new HashMap<>(16);
 for (.....) {
       Long contractUkid = ...;
       ContainerDo container = ...;
       contractContainerMap.computeIfAbsent(contractUkid, k -> new HashSet<>()).add(container);
}

//8.取最值
//取最長備註
 String remark = seTransferOrders.stream().max((o1, o2)-> {
                String name1 = Optional.ofNullable(o1.getRemark()).orElse("");
                String name2 = Optional.ofNullable(o2.getRemark()).orElse("");
                return name1.length() > name2.length() ? 1 : name1.length() == name2.length() ? 0 : -1;

            }).get().getRemark();


// 9.拋異常
Long relationUkid = Optional.ofNullable(imSubItemService.getBySubItemUkid(relationUkid)).map(ImSubItem::getItemUkid).orElseThrow(NOT_FOUND_GROUP);

// 10.過濾 
if (relations.stream().anyMatch((a) -> a.getStepFlow() < 5)) {
   ........
}

 

發佈了36 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章