Lambda表示式、解決端口占用問題
阿新 • • 發佈:2021-12-23
1.分組
private List<SaleGroupByStoreBO> groupByStoreBOList(BusinessSalesRequest request) { List<BusinessSalesVO> saleTypeAndStoreList = businessSalesMapper.getSaleTypeAndStore(request); if (CollectionUtils.isEmpty(saleTypeAndStoreList)) { return null; } List<SaleGroupByStoreBO> saleGroupByTypeBOList = new ArrayList<>(); Map<String, List<BusinessSalesVO>> collect = saleTypeAndStoreList.stream().collect(groupingBy(BusinessSalesVO::getStoreId)); for (Map.Entry<String, List<BusinessSalesVO>> listEntry : collect.entrySet()) { SaleGroupByStoreBO saleGroupByTypeBO= new SaleGroupByStoreBO(); saleGroupByTypeBO.setStoreId(listEntry.getKey()); saleGroupByTypeBO.setSaleVOList(listEntry.getValue()); saleGroupByTypeBOList.add(saleGroupByTypeBO); } return saleGroupByTypeBOList; }
2.排序(降序)
List<SaleDetailTypeAndStoreBO> collect = boList.stream().sorted(Comparator.comparing(SaleDetailTypeAndStoreBO::getCollectStoreSale).reversed()).collect(Collectors.toList());
3.判斷集合中是否存在某個值
for (String storeId : storeList) {
Optional<BusinessSalesAllStoreBO> any = allStoreSales.stream().filter(a -> a.getStoreId().equals(storeId)).findAny();
if (!any.isPresent()) {
stringList.add(getBusinessStoreName(storeId));
//想要獲取值時
//String storeName=any.get().getStoreName();
}
}
4.端口占用