2 回答
TA贡献2080条经验 获得超4个赞
流非常适合抽象迭代完成的方式并专注于您想要在对象上/与对象执行的实际过程。但是,当迭代顺序无关紧要时,这很有用。在这种情况下,它确实:不是订单本身,而是每个步骤中对象的索引,本质上是它与 2D 数组的其他对象相比的相对位置。当您流式传输该数组 Cell[][] 时,您一次得到一个 Cell 对象,没有它的索引。
Arrays(array2DofCells).stream().flatMap(x ->Arrays.stream(x))
.forEach( cell -> { //What would you do here without the indexes? } )
一种方法是让每个 Cell 知道它的索引,以便您可以调用cell.getRowIndex()并cell.getColumnIndex()执行您想要在父 2D 数组上执行的过程。
但是,正如评论中所指出的,除非有非常具体的原因,否则这似乎是避免流的情况。对此的指针是,您开始在 .forEach() 的范围内想知道如何获取流有意隐藏的信息。
TA贡献1802条经验 获得超4个赞
我想你可能正在寻找类似的东西:
var cells = [
"01110",
"01011",
"10101",
"11100",
"00100",
];
for (var i = 0; i < cells.length; i++) {
for (var j = 0; j < cells[i].length; j++) {
if (cells[i][j - 1] == "1") {cellAlive();}
if (cells[i][j + 1] == "1") {cellAlive();}
if (cells[i - 1][j] == "1") {cellAlive();}
if (cells[i + 1][j] == "1") {cellAlive();}
}
}
如果这不是您要查找的内容,您能否更具体一些?希望这可以帮助!
添加回答
举报