[英]How would I print coordinates from my 2d array?
我將如何從我的二維數組打印坐標? 我必須從數字 5 所在的任何地方打印坐標。 使用Math.random
將數字隨機生成到數組中。 這是代碼:
public class MultiArrays {
public static void main(String[] args) {
int[][] array = new int[3][4];
for (int index = 0; index < array.length; index++) {
for (int j = 0; j < array[index].length; j++) {
array[index][j] = (int) (Math.random() * 10);
}
}
for (int column = 0; column < array[0].length; column++) {
for (int row = 0; row < array.length; row++) {
System.out.print(array[row][column] + " | ");
}
System.out.println();
}
}
}
這看起來像 Java,而不是 JavaScript(只是注意基於問題上的標簽)。 它們是非常不同的東西,所以要清楚。
我也不清楚你所說的“當數字是 5 時”是什么意思。 你的意思是多維數組的第二個值是5?
如果是這種情況,您的第二個外部 for 循環中會有一些混亂。 您可能想要迭代array
所有值(所以array.length
),然后是這些值的所有內部值。
要在數組的內部(右側)值為 5 時輸出數組的值,您需要一個條件,在該條件下進行System.out
調用。
我認為你正在尋找的是:
for (int row = 0; row < array.length; row++) {
for (int col = 0; col < array[row].length; col++) {
if (array[row][col] == 5) {
System.out.println("Row: " + row + " Col: " + col + " has value 5");
}
}
}
它將第一行/列視為 0(從 0 開始)
int m = 3;
int n = 4;
// random array (n * m)
int[][] arr1 = IntStream.range(0, n)
.mapToObj(i -> IntStream.range(0, m)
// generate random array
.map(j -> (int) (Math.random() * 10))
.toArray())
.toArray(int[][]::new);
int x = 5;
// finding (x) coordinates
int[][] arr2 = IntStream.range(0, arr1.length)
.mapToObj(i -> IntStream.range(0, arr1[i].length)
.filter(j -> arr1[i][j] == x)
// (x) coordinates
.mapToObj(j -> new int[]{i, j})
.toArray(int[][]::new))
.flatMap(Arrays::stream)
.toArray(int[][]::new);
// output
Arrays.stream(arr1).map(Arrays::toString).forEach(System.out::println);
Arrays.stream(arr2).map(Arrays::toString).forEach(System.out::println);
輸出:
[3, 0, 5]
[8, 6, 1]
[4, 7, 1]
[5, 0, 3]
[0, 2]
[3, 0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.