我有一个SensorSample POJO对象列表
public class SensorSample {
private Device.SensorType sensorType; // This is an enum
private double sample;
private long timestamp;
// Constructor
// Setters
// Getters
}
我需要按照
时间戳
对它们进行分组,以便将同一天的所有SensorSample
放在一起。然后我需要对它们进行缩减,以便每天只有一个SensorSample
,其sample
的值是当天所有对象的sample
值的平均值。是否有一种使用流(Streams)的方法可以实现这一点?到目前为止,我已经将它们分组在了一起:
Map<Long, List<SensorSample>> yearSamples = samples.stream()
.collect(groupingBy(sample -> SECONDS_IN_A_DAY*Math.floorDiv(sample.getTimestamp(), SECONDS_IN_A_DAY)));
但是我不知道该如何继续前进。
groupingBy
版本。第二个参数是你的第二个收集器,它执行归约操作。 - RealSkeptic