有没有一种方法可以将以下两个语句合并?
Map<Integer,Double> collX = listeAllerPunkte.stream().collect(groupingBy(DataPoint::getId,
averagingDouble(DataPoint::getX)));
Map<Integer,Double> collY = listeAllerPunkte.stream().collect(groupingBy(DataPoint::getId,
averagingDouble(DataPoint::getY)));
我有一个叫做 DataPoints
的类,代码如下:
public class DataPoint {
public final double x;
public final double y;
private int Id;
public DataPoint(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public int getId() {
return Id;
}
}
Id
包含从 0-5
随机生成的值。
listeAllerPunkte
是一个包含许多 DataPoints
的 List
。
现在我想为列表中每个具有相同 Id
的 DataPoints
创建一个 DataPoint
。这个 DataPoint
应该是具有相同 Id
的 Datapoints 的 x 和 y 值
的平均值。
使用开头的两个语句,我必须从这两个映射中手动创建 DataPoints
。在流中是否有一种直接创建它们的方法?
pairing
的收集器。 - Tunaki