【Java宝典】——二维数组的寻宝之旅
CSDN 2024-10-05 10:05:19 阅读 89
<code>二维数组
二维数组的创建和打印
数据类型[ ] [ ] 数组名称 = new 数据类型[行数][列数]{初始化数据}; | |||||||||
<code>import java.util.Arrays;
public class DyadicArray { -- -->
// 二维数组的创建和打印
public static void main(String[] args) {
// 直接初始化一个二维数组,数组的值为1, 2, 3 和 4, 5, 6
int[][] array = { { 1, 2, 3}, { 4, 5, 6}};
// 使用 new 关键字显式创建一个二维数组,并同时进行初始化,数组的值为1, 2, 3 和 4, 7, 88
int[][] array1 = new int[][]{ { 1, 2, 3}, { 4, 7, 88}};
// 创建一个二维数组,行数为2,列数为3,数组的默认值为0
int[][] array2 = new int[2][3]; // 默认情况下,int数组元素为0
// 打印二维数组的内容,使用 Arrays.deepToString() 递归打印多维数组
System.out.println(Arrays.deepToString(array));
System.out.println("__________________________");
// 打印另一个二维数组的内容
System.out.println(Arrays.deepToString(array1));
System.out.println("__________________________");
// 打印未初始化的二维数组(其中的元素为默认值0)
System.out.println(Arrays.deepToString(array2));
}
}
打印结果:
<code>法1:通过循环语句打印数组
import java.util.Arrays;
public class DyadicArray { -- -->
//二维数组利用循环打印
public static void main(String[] args) {
int [][] array= { { 1,2,3,4},{ 6,2,3,4}};
//循环每一行
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}
打印结果:
<code>📣二维数组其实是特殊的一维数组
<code>public class DyadicArray { -- -->
public static void main(String[] args) {
int[][] array = { { 1,2,3},{ 4,5,6}};
System.out.println(array.length);
System.out.println(array[0].length);
System.out.println(array[1].length);
}
}
输出结果:
由上面的输出结果我们可以得出:其实二维数组的本质就是一个大的一维数组array,里面包含着两个小的一维数组。由此我们可以将上面的循环打印二维数组的语句修改为如下样式:
<code>import java.util.Arrays;
public class DyadicArray { -- -->
public static void main(String[] args) {
int [][] array = { { 1,2,3},{ 4,5,6}};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}
打印结果:
<code>法2:通过for -each语句打印
import java.util.Arrays;
public class DyadicArray { -- -->
public static void main(String[] args) {
int [][] array = { { 1,2,3},{ 4,5,6}};
//利用for-each遍历数组
//首先,循环遍历每一个二维数组里面的一维数组
// --> 冒号左边的是我们在二维素组里面遍历的每一个一维数组
// --> 冒号右边是二维数组
for(int [] OneArray : array){
//其次,循环遍历一维数组里面的每一个元素
// --> 冒号左边的是一维数组里面的每一个元素
// --> 冒号右边的是每一个一维数组
for(int x : OneArray) {
System.out.print(x + " ");
}
System.out.println();
}
}
}
运行结果:
<code>二维或多维数组的打印用Arrays库里面的deepToString关键字
//二维数组或则是多维数组的打印用deepToString
String ret = Arrays.deepToString(array);
System.out.println(ret);
打印结果:
<code>二维数组可省略列,不可省略行
若将二维数组省略的每一行进行打印结果会是报空指针的错误。
但是不规则的二维数组可以通过创建对象new进行打印
<code>public class DyadicArray2 { -- -->
public static void main(String[] args) {
int[][] array = new int[2][]; // 创建一个2行的二维数组,此时列数未知(不规则数组)
// 对每一行数组进行初始化,指定每一行的列数
array[0] = new int[3]; // 第一行初始化为3列
array[1] = new int[5]; // 第二行初始化为5列
// 使用嵌套循环遍历二维数组
for (int i = 0; i < array.length; i++) { // 外层循环遍历行
for (int j = 0; j < array[i].length; j++) { // 内层循环遍历列
System.out.print(array[i][j] + " "); // 打印当前元素,并在元素之间添加空格
}
System.out.println(); // 每一行打印完毕后换行
}
}
}
打印结果:
<code>二维数组的循环打印
public class DyadicArray3 { -- -->
public static void main(String[] args) {
int[][] arr ={
{ 1,2,3,4},
{ 5,6,7,8},
{ 11,2,4,5}
};
for (int i = 0 ; i < arr.length; i++){
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。