需要将传入的数组存储为单个二维数组。
public class Question {
static int row = 5;
static int column = 3;
static int[][] processedArrayData;
public static void processArrays(int[] incoming) {
processedArrayData = new int[column][row];
/*
* Need to store each incoming array as
* a single two dimensional array
*/
// This attempt gives me invalid data See "Invalid Example Output 1"
for (int i = 0; i < column; i++) {
for (int j = 0; j < row; j++) {
processedArrayData[i][j] = incoming[i];
}
}
for (int[] arr : processedArrayData) {
System.out.println(Arrays.toString(arr));
}
}
public static void main(String[] args) {
int[] array1 = {7, 7, 1, 3, 3};
int[] array2 = {9, 7, 0, 3, 8};
int[] array3 = {6, 6, 1, 3, 2};
processArrays(array1);
processArrays(array2);
processArrays(array3);
}
}
无效示例输出 1
[7, 7, 7, 7, 7]
[7, 7, 7, 7, 7]
[1, 1, 1, 1, 1]
[9, 9, 9, 9, 9]
[7, 7, 7, 7, 7]
[0, 0, 0, 0, 0]
[6, 6, 6, 6, 6]
[6, 6, 6, 6, 6]
[1, 1, 1, 1, 1]
我尝试这样做的每一次尝试都会导致错误。我假设我正在尝试将数组存储到二维数组的传统方法,并且所有数组信息都是已知的并且可以事先访问。当我尝试这样做时,一次只调用一个数组,我无法让它工作。
最佳答案
一个选择是让您的 processArray()
方法使用输入数组简单地向二维数组添加一个新行。然后,在二维数组中维护一个索引以跟踪您的位置。
public class Question {
private static int[][] processedArrayData;
private static int index = 0;
public static void processArrays(int[] incoming) {
//for (int i=0; i < incoming.length; ++i) {
// processedArrayData[index][i] = incoming[i];
//}
// edit by @FelixNovovic
processedArrayData[index] = incoming
++index;
}
public static void main(String[] args) {
int[] array1 = {7, 7, 1, 3, 3};
int[] array2 = {9, 7, 0, 3, 8};
int[] array3 = {6, 6, 1, 3, 2};
processedArrayData = new int[3][5];
processArrays(array1);
processArrays(array2);
processArrays(array3);
}
}
关于java - 通过方法传递数组时将数组数据存储到二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40635194/