如果我有一个点集合 Point,如何使用Java 8流在单次迭代中计算x和y的平均值。
以下示例创建了两个流,并在输入集合上迭代两次以计算x和y的平均值。是否有任何方法可以使用Java 8 lambda在单次迭代中计算x和y的平均值:
如果我有一个点集合 Point,如何使用Java 8流在单次迭代中计算x和y的平均值。
以下示例创建了两个流,并在输入集合上迭代两次以计算x和y的平均值。是否有任何方法可以使用Java 8 lambda在单次迭代中计算x和y的平均值:
List<Point2D.Float> points =
Arrays.asList(new Point2D.Float(10.0f,11.0f), new Point2D.Float(1.0f,2.9f));
// java 8, iterates twice
double xAvg = points.stream().mapToDouble( p -> p.x).average().getAsDouble();
double yAvg = points.stream().mapToDouble( p -> p.y).average().getAsDouble();