我有一个PricingSamples对象数组:
public class PricingSample {
private Date time;
private Double average;
public PricingSample(Date time, Double average) {
this.time = time;
this.average = average;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public Double getAverage() {
return average;
}
public void setAverage(Double average) {
this.average = average;
}
}
过去一个月的样品每小时一次。我想计算一下每天的总平均数。我可以计算一条流中的发生次数,也可以计算每天所有平均值的总和,我只是不知道如何将这些组合成一条流。
这就是我要做的。
将每天的所有平均值相加(i按Date属性的子字符串分组,以便按天分组,即4月26日星期四):
Map counts = Arrays.stream(samples).collect(Collectors.groupingBy((PricingSample e) -> {
return e.getTime().toString().substring(0, 10);
},
Collectors.summingDouble((PricingSample e) -> {
return e.getAverage();
})));
获取每天的样本数:
地图计数=
Arrays.stream(samples).collect(Collectors.groupingBy((PricingSample e) -> {
return e.getTime().toString().substring(0, 10);
},
Collectors.counting()
));