java - 使用 Java8 Streams 求和列表中各点之间的距离

标签 java java-8 java-stream

我有一个点列表 (x,y),我想求和它们之间的距离。在 Java 中,我会这样做:

List<Point> points = ...
long sum = 0;
for (int i = 0; i < points.size() - 1; i++) {
    sum += PointUtil.distance(points.get(i), points.get(i + 1));
}
return sum;

现在的问题是:我能否使用 points.stream() 执行相同的代码。 ...?

最佳答案

这是我能想到的第一件事:

sum = IntStream.range(0,points.size()-1)
               .mapToLong(i -> PointUtil.distance(points.get(i), points.get(i + 1)))
               .sum();

关于java - 使用 Java8 Streams 求和列表中各点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29280506/

相关文章:

java - 如何获取不连续的子数组。通过合并多个 .copyOf 范围

java - GWT。删除 anchor 部分 url

java - 如何在 ItestListener 中获取当前的类驱动程序

java - 通过 Jackson 的 ZonedDateTime 往返产生不相等的 ZonedDateTime

java - 如何在另一个窗口上使用 JTable 中选定的值填充文本字段?

java-8 - java.lang.NoClassDefFoundError : com/sun/mirror/apt/AnnotationProcessorFactory when execute Enunciate ant task

Java 8 : Reading a file into a String

Java 8 Lambda 表达式

java - 使用 Stream API 将两个集合与谓词组合

java - 为什么 Comparator.comparing 不适用于 String::toLowerCase 方法引用?