Is there a way to combine the following 2 Statesments?
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)));
I have a Class DataPoints
like this:
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;
}
}
The Id
contains a Random value between 0-5
.
listeAllerPunkte
is a List
with a lot of DataPoints
Now I want to create a DataPoint
for each DataPoints
in the List with the same Id
. The DataPoint
should have the average of the x and y values
of the Datapoints with the same Id
.
With the two Statemantes from the Beginning i must create the DataPoints
manually out of the two Maps.
Is there a way to create them directly in the stream?