如何返回这样的多维数组? [英] How do I return such an multi-dimensional array?
问题描述
方法 int [] [] labelPath(int n,int [] [] points)
创建一个长度为 n
的新正方形数组,并将其返回. data0
中的每一行都描述了二维数组中的一个点.在这里,列 0
始终是点的列索引,列 1
则是点的行索引.如果返回数组到达 data0
中的每个点,则返回值 -1
.在所有其他点上,返回数组都包含值 n
.
The method int[][] labelPath(int n, int[][] points)
creates a new square array of length n
and returns it back. Each line in data0
describes a point in a two-dimensional array. The column 0
is here always for the column index and column 1
for the row index of a point. If the return array reaches each point in data0
returns the value -1
. At all other points, the return array contains the value n
.
例如: n = 4
和 data0 = {{3,0},{0,1},{2,2}}
应该返回:>
For example: n = 4
and data0 = {{3, 0}, {0, 1}, {2, 2}}
should return:
[[4, 4, 4, -1], [-1, 4, 4, 4], [4, 4, -1, 4], [4, 4, 4, 4]]
到目前为止,我的代码:
My code so far:
int[][] labelPath(int n, int[][] points) {
int[][] help = new int[n][n];
for (int i = 0; i < input.length; i++) {
for (int j = 0; j < input[i].length; j++) {
int row = input[1].length;
int column = input[0].length;
for (int k = 0; k < help.length; k++) {
for (int l = 0; l < help[k].length; l++) {
if (help[i][j] == input[row][column]) {
help[i][j] = -1;
} else {
help[i][j] = n;
}
}
}
}
}
return help;
}
推荐答案
您可以使用流来创建这样的数组:
You can use streams to create such an array:
public static int[][] labelPath(int n, int[][] points) {
// create a new empty 2d array filled with zeros
int[][] matrix = new int[n][n];
// set all array elements to 'n'
Arrays.setAll(matrix, row -> {
Arrays.fill(matrix[row], n);
return matrix[row];
});
// iterate over the points array and set the corresponding elements to '-1'
Arrays.stream(points).forEach(row -> matrix[row[1]][row[0]] = -1);
return matrix;
}
// test
public static void main(String[] args) {
int n = 4;
int[][] data0 = {{3, 0}, {0, 1}, {2, 2}};
int[][] matrix = labelPath(n, data0);
// output
Arrays.stream(matrix).map(Arrays::toString).forEach(System.out::println);
}
[4, 4, 4, -1]
[-1, 4, 4, 4]
[4, 4, -1, 4]
[4, 4, 4, 4]
另请参见:创建初始重复数据的二维字符串数组的最有效方法是什么?
这篇关于如何返回这样的多维数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!