java二维数组的初步认识

二维数组:本质上是以数组作为数组元素的数组,即 “数组的数组”,也就是说二维数组的每一个元素是一个一维数组

数组的定义:
数据类型[][] 数组名 = 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];
}
//单纯用一种是浅拷贝,所有全部拷贝是深拷贝

猜你喜欢

转载自blog.csdn.net/Snowing1234_5/article/details/83065971