如何在不使用任何循环的情况下使用'-1'在java中自动填充数组(特别是多维)?
我知道默认情况下java用'0'初始化数组的所有元素。但是,如果我想一次用 -1 替换所有零怎么办..!不使用任何循环。
有没有捷径可用..?
您可以使用Arrays.fill填充一维数组,但您必须循环访问多维数组。
int[][] array = new int[100][100];
for (int[]a : array) {
Arrays.fill(a, -1);
}
您避免循环的原因是什么?如果您关心性能(并且您确定存在问题),您可能会做经常做的事情,即将您的数组扁平化为一维数组:
int[] flatarray = new int[width*height];
然后你可以只用一个来填充它fill
(虽然它隐藏了一个循环),而且许多操作会更有效率。访问一个单元格将是flatarray[x+y*width]
。但您应该首先配置文件以确保您需要它。
您可以使用Arrays.fill
方法来填充一维数组:-
int[] array = new int[5];
Arrays.fill(array, -1);
要填充二维数组,您可以通过迭代将上述方法应用于每个一维数组。
int[][] multiArr = new int[10][10];
for (int[] innerArr: multiArr) {
Arrays.fill(innerArr, -1);
}
public static void fill(int[][] array, int element) {
for(int[] subarray : array) {
Arrays.fill(subarray, element);
}
}
对于一维数组,您可以使用
int[] array = new int[9000];
Arrays.fill(array, -1)
但是对于多维数组,您将不得不使用循环。
您不使用循环的要求听起来相当随意,因为实际上即使是一维数组,您也正在使用循环。它只是隐藏在fill
方法中。在技术层面上,没有循环就无法填充数据结构!
你最好学会停止担心并喜欢 for 循环。