java8Stream多条件分组统计

更新时间:2023-06-24 03:29:39 阅读: 评论:0

java8Stream多条件分组统计
SettleVO类幸福味道
@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 {
/
祖国祝福语
**
*耗时
*/
private BigDecimal timeConsuming;
/**
* 机票价格
*/
private Double ticketPrice;
/**
* 公⾥数
咖啡有什么营养
*/
private Integer distance;
}
主函数:
public class StaticService {
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());
});
}
//获取分组维度
除湿的标志private static SettleVO getGroupKey(final SettleVO vo) { final SettleVO groupKey = new SettleVO();
groupKey.SendDate());
groupKey.StartCityId());
groupKey.EndCityId());
return groupKey;
}
}
测试结果:
View Code

本文发布于:2023-06-24 03:29:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1025904.html

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

标签:分组   城市   名称   维度   统计   法国
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图