Actor[][] toMatrix(Actor[] arr) {
int size = (int) round(sqrt(arr.length));
Actor[][] matrix = new Actor[size][size];
for (int i = 0; i < arr.length; i++) {
*** matrix[i / size][i % size] = arr[i]; ***
}
return matrix;
}
我无法理解该特定代码行的作用。
答案 0 :(得分:1)
让我们在这里尝试一个例子:
String[] test = {"John Doe","Actor","Jane Doe","Actress"};
int size = (int) Math.round(Math.sqrt(arr.length)); -> 2
所以我们正在创建一个[2] [2]数组。
迭代arr(= 4)的大小:
0 -> [0/2 -> 0][0%2 -> 0] = arr[0]
1 -> [1/2 -> 0][1%2 -> 1] = arr[1]
2 -> [2/2 -> 1][2%2 -> 0] = arr[2]
3 -> [3/2 -> 1][3%2 -> 1] = arr[3]
因此,除法的其余部分用于确定数组第二维中的索引。
输出如下:
[[John Doe, Actor], [Jane Doe, Actress]]