我有一个for循环在整数[][]map
上进行迭代。
目前代码如下:
for(int i = 0; i < rows; i++) {
for(int j = 0; j < columns; j++) {
if(map[i][j] == 1)
q.add(new Point(i,j));
}
}
假设我有List<List<Integer>> maps2d
而不是二维数组,我该如何使用流进行操作呢?
目前为止,我得到了以下内容:
maps2d.stream()
.forEach(maps1d -> maps1d.stream()
.filter(u -> u == 1)
.forEach(u -> {
}
)
);
到这里为止是正确的吗? 如果是的话,我该如何计算i和j以创建new Point(i,j)并将其添加到q中?
Stream
和IntStream
。在Java中,人们总是热衷于对象的强大功能,以及分配的廉价和GC“现在非常快”。然而,当涉及到它时,必须发明IntStream
,并进行所有必要的工作来进行转换,这是因为JVM没有用户可定义的内联值类型,这将使Stream<int>
/Stream<double>
成为可能,并消除对IntStream
/DoubleStream
等的需求。 - Alexander