1.Steam流 求取最大、最小、求和
List curve = electricTotalHourReportMapper.curve(paramterSo);
BigDecimal max = curve.stream().map(ElectricTotalHourReport::getRecord).max(BigDecimal::compareTo).get();
BigDecimal min = curve.stream().map(ElectricTotalHourReport::getRecord).min(BigDecimal::compareTo).get();
BigDecimal energyCategorySum = energyCategory.stream()
.map(ElectricDailyReport::getRecord)
.reduce(BigDecimal.ZERO, BigDecimal::add);
2.Steam流 递归组建菜单树
// 组建常规菜单树
public List sysMenuTree(List sysMenuList) {
// 获取一级菜单
List levelMenus_1 = sysMenuList.stream()
.filter(sysMenu -> sysMenu.getParentId() == 0)
.map((sysMenu) -> {
sysMenu.setChildren((getChildrens(sysMenu, sysMenuList)));
return sysMenu;
})
.collect(Collectors.toList());
return levelMenus_1;
}
// 传入root节点,找到all子节点
private List getChildrens(SysMenu root, List all) {
List children = all.stream()
.filter(SysMenu -> {
return root.getMenuId().equals(SysMenu.getParentId());
}).map(SysMenu -> {
//递归查找子菜单
SysMenu.setChildren(getChildrens(SysMenu, all));
return SysMenu;
}).collect(Collectors.toList());
return children;
}
3.Steam流 转map
Map buildMap = SpringUtils.getBean(EnergyBuildMapper.class)
.selectEnergyBuildList(new EnergyBuild())
.stream().collect(Collectors.toMap(o->o.getId().toString(), o -> o));