【发布时间】:2020-09-12 21:01:43
【问题描述】:
Java Instream 我需要具有空值的二维数组中的元素索引。我可以使用 对于我在下面做的一维数组,它起作用了:
IntStream.range(0, myArr.length)
.filter(x -> myArr[x] == null)
.findFirst()
.orElse(-1);
我可以使用 Streams over Arrays 和 flatmap 获取对象,但我的目的是获取 i 和 j 的值,其中 myArr[i][j] 为空。
【问题讨论】:
-
由于 java 中没有本地元组类型,如果不创建自己的 intTuple 类型,您将无法完成此操作。但是即使那样,流解决方案也必须创建许多对象,我建议只使用嵌套的 for 循环来完成它
-
正如 Ackdari 所说,如果您想为各种二维数组执行此操作,则需要创建自己的
IntTuple,但如果您只是处理矩形二维数组,即每个子数组有相同的长度,那么你可以做一些数学来计算出索引。
标签: java functional-programming java-stream