gpt4 book ai didi

java - 是否可以构造一个 Java 流表达式来返回一个 2D boolean 数组,所有值都设置为 true?

转载 作者:行者123 更新时间:2023-12-03 11:20:15 25 4
gpt4 key购买 nike

我正在学习流表达式并尝试使用它们来构造一个 2D boolean 数组,所有值都设置为 true。就像是:

boolean[][] bool_array = [stream expression returning a
2D array boolean[h][w], all values set to true]
这是可能的,表达式是什么?
我知道 int[][]例如,可以使用流创建数组
int h=5;
int w=8;
int[][] int_array = IntStream.range(0,h).mapToObj(i->IntStream.range(0,w).
map(j->1).toArray()).toArray(int[][]::new);
返回 int[5][8]充满了。但试图让它为 boolean[][] 工作
boolean[][] bool_array = IntStream.range(0,h).mapToObj(i->IntStream.range(0,w).
mapToObj(j->true).toArray()).toArray(boolean[][]::new);
抛出一个 ArrayStoreException .

最佳答案

如果你想用流来做,你可以这样做:

int rows = 5;
int cols = 5;

boolean[][] bool2D = IntStream.range(0, rows)
.mapToObj(r -> {
boolean[] rr;
Arrays.fill(rr = new boolean[cols], true);
return rr;
}).toArray(boolean[][]::new);


for (boolean[] b : bool2D) {
System.out.println(Arrays.toString(b));
}
打印
[true, true, true, true, true]
[true, true, true, true, true]
[true, true, true, true, true]
[true, true, true, true, true]
[true, true, true, true, true]

关于java - 是否可以构造一个 Java 流表达式来返回一个 2D boolean 数组,所有值都设置为 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64287048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com