数组 – 2d scala数组迭代
发布时间:2020-12-16 09:56:28 所属栏目:安全 来源:网络整理
导读:我有一个类型为boolean的二维数组(不重要) 以非功能样式迭代数组很容易. 怎么做FP风格? var matrix = Array.ofDim[Boolean](5,5) 对于ex,我想迭代给定列的所有行并返回与特定函数匹配的int列表. 示例:对于第3列,如果(4,3),(5,3)处的单元格与特定函数匹配,
我有一个类型为boolean的二维数组(不重要)
以非功能样式迭代数组很容易. 怎么做FP风格? var matrix = Array.ofDim[Boolean](5,5) 对于ex,我想迭代给定列的所有行并返回与特定函数匹配的int列表. def getChildren(nodeId: Int) : List[Int] = { info("getChildren("+nodeId+")") var list = List[Int]() val nodeIndex = id2indexMap(nodeId) for (rowIndex <- 0 until matrix.size) { val elem = matrix(rowIndex)(nodeIndex) if (elem) { println("Row Index = " + rowIndex) list = rowIndex :: list } } list } 解决方法
关于什么
(1 to 5) filter {i => predicate(matrix(i)(3))} 谓词是你的功能吗? 注意,用(5,5)索引初始化从0到4. 更新:根据您的示例 def getChildren(nodeId: Int) : List[Int] = { info("getChildren("+nodeId+")") val nodeIndex = id2indexMap(nodeId) val result = (0 until matrix.size).filter(matrix(_)(nodeIndex)).toList result.forEach(println) result } 如果需要,您也可以在适配器中移动打印件,如果您希望它与示例完全相同,则可以反转列表 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |