小笔记本解释一段stream()代码:
解释1:
List listSku
Map map =listSku.stream().collect(Collectors.toMap(SkuHasStockTo::getSkuId, item -> item.getHasStock()));
//遍历listSku 把它的每一个对象(SkuHasStockTo)的 getSkuId 作为键 SkuHasStockTo的每一个hasStock属性作为值,做成map键值对
解释2:
List skus
List skuIdList = skus.stream().map(SkuInfoEntity::getSkuId).collect(Collectors.toList());
//遍历 skus的每一个对象(SkuInfoEntity) 取出它的skuId 生成一个新的skuId的List
解释3:
List baseAttrs
List attrIds = baseAttrs.stream().map(attr -> {
return attr.getAttrId();
}).collect(Collectors.toList());
//遍历 baseAttrs的每一个对象(ProductAttrValueEntity) AttrId 生成一个新的skuId的List
解释4:
public static class Attrs{
private Long attrId;
private String attrName;
private String attrValue;
}
Set idSet
List baseAttrs
List attrList = baseAttrs.stream().filter(item -> {
return idSet.contains(item.getAttrId());
}).map(item -> {
Attrs attrs1 = new SkuEsModel.Attrs();
BeanUtils.copyProperties(item, attrs1);
return attrs1;
}).collect(Collectors.toList());
//遍历 baseAttrs的每一个对象(ProductAttrValueEntity)
//filter 过滤筛选出集合idSet 包含 ProductAttrValueEntity属性值attrId的
//把过滤后的ProductAttrValueEntity 按照 Attrs的属性 生成 List
例子5:
public Map> getCatalogJson() {
//1.查出所有1级分类
List level1Categorys = getLevel1Categorys();
//封装数据
Map> collect = level1Categorys.stream().collect(Collectors.toMap(k -> {
return k.getCatId().toString();
}, v -> {
//每一个的一级分类 查到这个一级分类的所有二级分类
List categoryEntities = baseMapper.selectList(new QueryWrapper().eq("parent_cid", v.getCatId()));
List catelog2Vos = null;
if(categoryEntities!=null){
catelog2Vos = categoryEntities.stream().map(level2 -> {
//查处当前二级分类下的所有三级分类
List levl3Catelog = baseMapper.selectList(new QueryWrapper().eq("parent_cid", level2.getCatId()));
List catelog3VoList = null;
if(levl3Catelog!=null){
catelog3VoList = levl3Catelog.stream().map(level3 -> {
new Catelog2Vo.Catelog3Vo("","","");
Catelog2Vo.Catelog3Vo catelog3Vo = new Catelog2Vo.Catelog3Vo(
level2.getCatId().toString(),
level3.getCatId().toString(),
level3.getName()
);
return catelog3Vo;
}).collect(Collectors.toList());
}
Catelog2Vo catelog2Vo = new Catelog2Vo(
v.getCatId().toString(),
catelog3VoList,
level2.getCatId().toString(),
level2.getName()
);
return catelog2Vo;
}).collect(Collectors.toList());
}
return catelog2Vos;
}));
return collect;
}