- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
final double[][] a = new double[][] { { 1, 2, 3 }, { 4, 5, 6 } };
final int numRows = a.length;
final int numCols = a[0].length;
final double[] da = IntStream.range(0, numCols)
.mapToObj(i -> IntStream.range(0, numRows).mapToDouble(j -> a[i][j])).flatMap(d -> d)
.toArray(double[]::new);
// da should be [1, 4, 2, 5, 3, 6]
错误是:无法推断 flatMap(Function>) 的类型参数
正确的写法是什么?我试过从 map 发出 double[] 但也无法做到这一点。非常感谢。
最佳答案
您的代码中有一个小错误:您在 a[i][j]
中混合了 i
和 j
。改变这些指数你得到它:
double[] da = IntStream.range(0, numCols)
.mapToObj(i -> IntStream.range(0, numRows).mapToDouble(j -> a[j][i]))
.flatMapToDouble(d -> d)
.toArray();
您也可以使用 flatMapToDouble(Function.identity())
代替 flatMapToDouble(d -> d)
。
关于java - flatMap 类型 - 尝试合并 DoubleStreams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42948413/
我需要一个技巧来解决这个问题,我正在使用 Java 1.8,并且我从返回 DoubleStream 对象的方法中检索了一个对象。所以,问题是我无法在消耗流后重用该流。 这是代码的第一个版本: Dou
为什么 DoubleStream 或 LongStream 没有与这些方法类似的方法(存在于 IntStream 中): public static IntStream range(int start
final double[][] a = new double[][] { { 1, 2, 3 }, { 4, 5, 6 } }; final int numRows = a.length;
我很困惑。如果我计算 System.out.println(0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1); 然后我得到 0.99
这个问题在这里已经有了答案: How do I get an IntStream from a List? (2 个答案) 关闭 7 年前。 我正在寻找最优雅的方式来创建 DoubleStream
本章节我们提供一些 Java 8 中的 IntStream、LongStream 和 DoubleStream 使用范例。IntStream、LongStream 和 DoubleStream 分别表
我确信有一个简单的方法可以做到这一点,但我没有找到。 本质上,我想做的是利用 Java DoubleStream 来计算各种事物,例如值数组的平均值。但是,数组可能包含 NaN 值,这当然会导致结果也
我很好奇 Java 8 中的以下构造: double[] doubles = //... double sum = DoubleStream.of(doubles).parallel().sum();
我是一名优秀的程序员,十分优秀!