我想知道打印2D数组最简单的方法是什么? 我知道我们可以像下面的代码一样打印1D数组。
int[ ] numbers = {2, 3, 5, 7};
for (int print: numbers) {
System.out.println(print);
}
我尝试打印下面的代码,当然它不起作用。
int[ ][ ] numbers= { {1, 2, 3}, {4, 5, 6} };
for (int print: numbers) {
System.out.println(print);
}
我知道我可以使用嵌套循环进行打印,如下面的代码,但我想知道是否可以像1D数组一样使用foreach循环。谢谢
int[ ][ ] numbers= { {1, 2, 3}, {4, 5, 6} };
for (int i = 0; i < numbers.length; i++) {
for (int j = 0; j < numbers[i].length; j++) {
System.out.print(numbers[i][j] + " ");
}
System.out.println();
}
}
答案 0 :(得分:2)
在二维数组中,第一个循环中的每个元素都是一维数组,在第二个循环中,每个元素本身就是一个数字:
int[][] array2d = {{1, 2, 3}, {4, 5, 6}};
for (int[] array : array2d) {
for (int element : array) {
System.out.print(element + " ");
}
System.out.println();
}
实际上,使用Arrays::toString
库方法有更好的方法:
int[][] numbers = {{1, 2, 3}, {4, 5, 6}};
for (int[] array : numbers) {
System.out.println(Arrays.toString(array));
}
答案 1 :(得分:1)
使用foreach循环打印2D数组最简单的方法:
示例:
public class Print2DArr {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[ ][ ] numbers= { {1, 2, 3}, {4, 5, 6} };
for (int[] arr: numbers) {
for (int num : arr ) {
System.out.print(num + " ");
}
System.out.println();
}
}
}
输出:
1 2 3
4 5 6
但是,libs确实为此提供了方法deepToString
,因此这也可能适合您的目的:
public class Print2DArr {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[ ][ ] numbers= { {1, 2, 3}, {4, 5, 6} };
System.out.println(Arrays.deepToString(numbers));
}
输出:
[[1, 2, 3], [4, 5, 6]]
答案 2 :(得分:0)
您也可以使用Stream.of()
:
Stream.of(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}).forEach(x -> {
System.out.println(Arrays.toString(x));
});
Output: [1, 2, 3]
[4, 5, 6]
[7, 8, 9]
但是我认为Arrays.deepToString()
是更好的方法。
System.out.println(
Arrays.deepToString(
new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
));
Output: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]