上一章节我们讲述了二维、多维数组的输入和复制,今天我们来讲讲二维、多维数组的输出。
关于数组的输出方式有两种,一种是转换为String类型输出;还有一种是“降级型”方式输出,“降”到最后以元素的方式输出。
一、Arrays.toString()、Arrays.deepToString()
这两个方法是将原数组(二维数组、多维数组)转换为String类型后,按照数据“集合”的方式输出。(前一章节我们已经讲述过,在此仅仅再次示范一下)
我们在main()方法中输入如下代码:
int a[] = new int[] { 1, 2, 5, 4, 3 };
System.out.println(Arrays.toString(a));
int[][] array = new int[][] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
System.out.println(Arrays.deepToString(array));
运行结果:
[1, 2, 5, 4, 3]
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
二、降级型输出方式一:常规for循环输出
我们先来看看二维数组。
我们在main()方法中输入如下代码:
int a[] = new int[] { 1, 2, 5, 4, 3 };
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + "\t");
}
运行结果:
1 2 5 4 3
这是二维数组,我们来看看多维数组:
int[][] array = new int[][] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
for (int i = 0; i < array.length; i++) {
System.out.print(Arrays.toString(array[i]) + "\t");
}
运行结果:
[1, 2, 3, 4] [5, 6, 7, 8] [9, 10, 11, 12]
在此我们要注意,在二维数组中,每一个元素为一个单位;而在多维数组中,每一个下层次的数组为一个单位,因此想要输出多维数组中的元素,要一层层地往下“剥”。
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++)
System.out.print(array[i][j] + "\t");
}
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12
三、降级型输出方式二:for each循环
for each循环是一种极简化的for循环,它是一种专为数组打造的降级型型输出方式。
for each 语句为:
for(低一级变量 : 数组) {
System.out.print(低一级变量 + "\t");
或者
System.out.println(低一级变量);
}
当然,输出语句自行定义。
这个变量的初始值为0,终止值为数组.length - 1,增量为 1,其实就是常规for() { }循环中()内的变量控制三要素。具体输出结果和降级型输出方式一并无区别。
我们先来看看二维数组。
我们在main()方法中输入如下代码:
int a[] = new int[] { 1, 2, 5, 4, 3 };
for (int i : a) {
System.out.print(i + "\t");
}
运行结果:
1 2 5 4 3
这是二维数组,我们来看看多维数组:
int[][] array = new int[][] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
for (int i[] : array) {
System.out.print(Arrays.toString(i) + "\t");
}
运行结果:
[1, 2, 3, 4] [5, 6, 7, 8] [9, 10, 11, 12]
for (int i[] : array) {
for (int j : i)
System.out.print(j + "\t");
}
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12