如何在Java中将二维数组的所有元素初始化为特定值

3

C++中有一个函数(memset()),它可以将一维数组和任何多维数组的值初始化。但在Java中,有一个函数fill只能初始化一维数组,不能初始化多维数组。


1
请您详细说明一下?您在Java中想要做什么,怎么做以及为什么它不起作用? - BackSlash
你尝试使用两个循环了吗? - Peter Bruins
我还没有使用循环。 - Mostafa Radwan
1
如果x是一个二维整数数组,要将x中的所有值填充为3,请使用Arrays.stream(x).forEach(a->{Arrays.fill(a,03);}); - Nawnit Sen
2个回答

9
Arrays.fill()方法可以用于填充一维数组,但没有内置的方法来进行多维数组的“深度”填充。
对于二维数组,我会像这样做:
int[][] arr2 = new int[5][5];  
for(int[] arr1 : arr2) 
  Arrays.fill(arr1, 1);

痛苦。很遗憾这在Java8/9时间框架内没有得到改进。 - WestCoastProjects

0
在Java中,我们可以使用流来填充2D矩阵的值。
假设我想初始化一个2D字符数组,那么我将使用以下代码:
示例1:
char[][] temp=new char[5][5];

Arrays.stream(temp).forEach(row->Arrays.fill(row,'.'));

例子2:

如果它是一个整数数组,则。

int[][] temp=new int[5][5];

Arrays.stream(temp).forEach(row->Arrays.fill(row,1));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接