java - Java Streams 可以将点列表转换为其坐标列表吗?

标签 java mapping java-stream variable-expansion

我在 JavaFX 8 程序中有一个 Point3D 流。我希望,为了从它们创建网格,能够生成它们的 (x, y, z) 坐标列表。

通过传统的 Java 循环,这是一个足够简单的任务。 (实际上几乎微不足道。)但是,将来我可能会处理数万个点;我非常希望能够使用 Java Stream API 并通过并行流来完成此任务。

我想我正在寻找的是这个伪代码的大致等价物:

List<Double> coordinates = stream.parallel().map(s -> (s.getX(), s.getY(), s.getZ())).collect(Collectors.asList());

到目前为止,我还没有发现这样的功能。有人可以帮我朝正确的方向插入吗?

最佳答案

您可以使用flatMap:

List<Double> coordinates = 
    stream.parallel()
          .flatMap(s -> Stream.of(s.getX(), s.getY(), s.getZ()))
          .collect(Collectors.asList());

关于java - Java Streams 可以将点列表转换为其坐标列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35046324/

相关文章:

java - 无法通过使用 Selenium Webdriver 设置 Firefox 配置文件来下载文件

java - 使用 Apache POI 识别隐藏文本 Word 2003/2007

java - 在java中从xml设置数字

bash - 浏览多个文件的多个路径

java - 如何在 Java 中将存储为字符串的日期解析为不同的格式?

java - Mapstruct - 在整个项目中按名称忽略字段

ios - 关系映射 Restkit

java - Java 8 流中的非干扰确切含义

java - 分解代码,唯一的区别是流减少操作

java - 使用 Java 流将列表转换为映射