二维数组:本质上是以数组作为数组元素的数组,即 “数组的数组”,也就是说二维数组的每一个元素是一个一维数组
数组的定义:
数据类型[][] 数组名 = new 数据类型[二维数组的长度/包含的一维数组的个数][每个一维数组的长度];
int[][] arr = new int[3][5];—定义了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数
arr[0]—下标为0的位置上的一维数组
arr[1][3]—如果要获取具体的元素需要两个下标
数据类型[][] 数组名 = new 数据类型[二维数组的长度/包含的一维数组的个数][];
具体示例为下面三种
1)int[][] arr={{1,2,3},{4,5,6},{7,8,9}};
2)int[][] arr= new int[3][3] //大部分情况下会使用
int[][] arr=new[3][0]
For(int i=0;i<3;i++){
Arr[i] = new int[3];
}
3)int[][] arr= new int[][]{{1,2,3},{4,5,6}};
二维数组输入具体数据:
int[][] arr= new int[3]
Arr[0]= new int[3]{};//大括号里写具体数字
Arr[1]= new int[3]{};
Arr[2]= new int[3]{};
数组的遍历
1) for语句
for (int i = 0; i < arr.length; i++)
for (int j = i; j < arr[i].length; j++){
//arr[i][j];
}
}
2) Foreach语句
for(int[] a:arr){
for(int[] b:a){
//b;
}
}
3)
arrays.deepToString(arr);
System.out.println(Arrays.toString(arr));//字符串类型//打印;
System.out.println(String.valueOf(arr));//打印字符串
数组的拷贝:
*】浅拷贝
1)arr.clone();
int[][] arr = new int[][]{{1,2},{3,4}};
int[][] brr = arr.clone();
System.out.println(brr[0][0]);
2)Arrays.copyOf 方法
int[][] brr=Arrays.copyOf(arr,arr.length);
3)系统自带
Int[][] brr=new int[arr.length][arr[0].length];
System.arraycopy(arr,srcPos:0,brr,destPos:0,arr.length);
//此时brr需要初始化
*】深拷贝:
1)
int[][] arr = new int[][]{{1, 2}, {3, 4}};
arr[0][0] = 99;
int[][] brr = Arrays.copyOf(arr, arr.length);
System.arraycopy(arr, 0, brr, 0, arr.length);
for (int i = 0; i < arr.length; i++) {
//4种一维数组的拷贝
}
System.out.println(brr[0][0]);
2)双重for循环
for(int i=0; i< arr.length; i++){
for(int j=0;j< arr.length;j++){
brr[i] = arr[i];
}
//单纯用一种是浅拷贝,所有全部拷贝是深拷贝