java8Stream多条件分组统计

更新时间:2023-07-14 14:18:48 阅读: 评论:0

java8Stream多条件分组统计
camelliaSettleVO类
@Data
@ToString
public class SettleVO implements Serializable {
private Long id;
/**
* ⽇期
*/
private String ndDate;
/
**
* 始发中⼼所在的城市
*/
private String startCityId;
/**
* 始发城市名称
*/
private String startCityName;
/**
* ⽬的城市
*/
private String endCityId;
累了的英文/**
* ⽬的城市名称
*/
private String endCityName;
/**
* 耗时
*/
private BigDecimal timeConsuming;
/**
* 机票价格
*/
private Double ticketPrice;
/**
* 公⾥数
*/
private Integer distance;
}
SettleGroupVO类
@Data
@ToString
public class SettleGroupVO implements Serializable {
/
**
fiance*耗时
*/
private BigDecimal timeConsuming;
/**
* 机票价格
*/
private Double ticketPrice;surveyed
/**
* 公⾥数
*/
在线金山词霸
private Integer distance;
}
主函数:
public class StaticService {
dull
public static void main(String[] args) {
//制造测试数据
List<SettleVO> ttleVOList = new ArrayList<>();
for (int i = 10; i < 30; i++) {
final SettleVO ttleVO = new SettleVO();
二级建造师报名表ttleVO.tSendDate("2020-07-" + String.valueOf(i));
ttleVO.tStartCityId("100" + (i % 5));
ttleVO.tEndCityId("200" + (i % 5));
ttleVO.tTicketPrice((double) (i % 5));
ttleVO.tTimeConsuming(new BigDecimal(i % 5));
ttleVO.tDistance(100 * (i % 5));
ttleVOList.add(ttleVO);
}
//按照维度分组统计
final Map<SettleVO, SettleGroupVO> groupVOMap = ttleVOList.stream()
.upingBy(n -> getGroupKey(n), List(), m -> { final Double ticketPrice = m.stream().mapToDouble(SettleVO::getTicketPrice).sum();
final BigDecimal timeConsuming = m.stream().map(e -> e.getTimeConsuming()).reduce(BigDecimal::
add).get();
final Integer distance = m.stream().mapToInt(SettleVO::getDistance).sum();
SettleGroupVO ttleGroupVO = new SettleGroupVO();
ttleGroupVO.tTicketPrice(ticketPrice);
ttleGroupVO.tTimeConsuming(timeConsuming);
ttleGroupVO.tDistance(distance);
return ttleGroupVO;
})));
System.out.println("groupByMap=" + groupVOMap.size());
groupVOMap.forEach((k, v) -> {
System.out.String());
System.out.String());
});
ggh
}
//获取分组维度
private static SettleVO getGroupKey(final SettleVO vo) { final SettleVO groupKey = new SettleVO();magista
groupKey.SendDate());plates
groupKey.StartCityId());
groupKey.EndCityId());
return groupKey;
}
}
测试结果:
View Code

本文发布于:2023-07-14 14:18:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/177222.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分组   城市   名称   维度   统计   测试数据   报名表
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图