聲明和初始化
靜態初始化
// 靜態初始化:
// 一維數組int[] arr1_1 = {1, 2, 4};System.out.println(Arrays.toString(arr1_1));
// 二維數組int[][] arr1_2 = {{1, 2}, {4, 5}, {9, 10}};for (int[] i :arr1_2) {System.out.print(Arrays.toString(i));}System.out.println();
動態初始化
// 動態初始化
// 一維數組int[] arr2_1 = new int[3];arr2_1[0] = 1;arr2_1[1] = 2;arr2_1[2] = 4;System.out.println(Arrays.toString(arr2_1));
// 二維數組1int[][] arr2_2 = new int[3][2];arr2_2[0][0] = 1;arr2_2[0][1] = 2;arr2_2[1][0] = 4;arr2_2[1][1] = 5;arr2_2[2][0] = 9;arr2_2[2][1] = 10;for (int[] i :arr2_2) {System.out.print(Arrays.toString(i));}System.out.println();
// 二維數組2int[][] arr2_3 = new int[3][];arr2_3[0] = new int[]{1, 2};arr2_3[1] = new int[]{4, 5};arr2_3[2] = new int[]{9, 10};for (int[] i :arr2_3) {System.out.print(Arrays.toString(i));}
寫法
一維數組
// 寫法:
// 一維數組1int[] arr3_1 = new int[9];
// 一維數組2int arr3_2[] = new int[9];
// 一維數組3int arr3_3[] = new int[]{8, 3, 4};
// 一維數組4-類型推斷int arr3_4[] = {8, 3, 4};
二維數組
// 二維數組1int[][] arr4_1 = new int[3][2];
// 二維數組2int arr4_2[][] = new int[3][2];
// 二維數組3int[] arr4_3[] = new int[3][2];
// 二維數組4int[][] arr4_4 = new int[][]{{1, 2}, {4, 5}, {9, 10}};
// 二維數組5-類型推斷int[][] arr4_5 = {{1, 2}, {4, 5}, {9, 10}};
聲明和初始化總代碼
package lesson.l7_array;import java.util.Arrays;/*** Illustration** @author DengQing* @version 1.0* @datetime 2022/5/7 18:17* @function 二維數組*/
public class TwoDimensionalArray {public static void main(String[] args) {
// 靜態初始化:
// 一維數組int[] arr1_1 = {1, 2, 4};System.out.println(Arrays.toString(arr1_1));
// 二維數組int[][] arr1_2 = {{1, 2}, {4, 5}, {9, 10}};for (int[] i :arr1_2) {System.out.print(Arrays.toString(i));}System.out.println();// 動態初始化
// 一維數組int[] arr2_1 = new int[3];arr2_1[0] = 1;arr2_1[1] = 2;arr2_1[2] = 4;System.out.println(Arrays.toString(arr2_1));
// 二維數組1int[][] arr2_2 = new int[3][2];arr2_2[0][0] = 1;arr2_2[0][1] = 2;arr2_2[1][0] = 4;arr2_2[1][1] = 5;arr2_2[2][0] = 9;arr2_2[2][1] = 10;for (int[] i :arr2_2) {System.out.print(Arrays.toString(i));}System.out.println();
// 二維數組2int[][] arr2_3 = new int[3][];arr2_3[0] = new int[]{1, 2};arr2_3[1] = new int[]{4, 5};arr2_3[2] = new int[]{9, 10};for (int[] i :arr2_3) {System.out.print(Arrays.toString(i));}// 寫法:
// 一維數組1int[] arr3_1 = new int[9];
// 一維數組2int arr3_2[] = new int[9];
// 一維數組3int arr3_3[] = new int[]{8, 3, 4};
// 一維數組4-類型推斷int arr3_4[] = {8, 3, 4};// 二維數組1int[][] arr4_1 = new int[3][2];
// 二維數組2int arr4_2[][] = new int[3][2];
// 二維數組3int[] arr4_3[] = new int[3][2];
// 二維數組4int[][] arr4_4 = new int[][]{{1, 2}, {4, 5}, {9, 10}};
// 二維數組5-類型推斷int[][] arr4_5 = {{1, 2}, {4, 5}, {9, 10}};}
}
二維數組的長度
int [][]arr1=new int[][]{{1,2},{8,9,10},{-1}};
// 二維數組的行-外層的System.out.println(arr1.length);//3
// 二維數組的列-內部的System.out.println(arr1[0].length);//2System.out.println(arr1[1].length);//3System.out.println(arr1[2].length);//1
二維數組的遍歷
方法1
// 二維數組的遍歷
// 方法1:兩層for循環for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {/*1 2 8 9 10 -1 */System.out.print(arr[i][j]+"\t");}System.out.println();}
方法2
// 方法2:foreach+Arrays.toStringfor (int[] a:arr) {
// [1, 2][8, 9, 10][-1]System.out.print(Arrays.toString(a));}
默認初始值
public class TwoDimensionalArray3 {public static void main(String[] args) {
// 一維數組int[]a=new int[2];System.out.println(a);//[I@43a25848System.out.println(a[0]);//0System.out.println(a[1]);//0// 二維數組1int[][]arr=new int[3][4];System.out.println(arr);//[[I@3ac3fd8b
// 外層元素/*[I@43a25848:* [一個代表存的是一維數組* I代表是int型* 43a25848代表地址*/System.out.println(arr[0]);//[I@43a25848System.out.println(arr[1]);//[I@3ac3fd8b
// 內層元素System.out.println(arr[0][0]);//0System.out.println(arr[1][1]);//0// 二位數組2int[][]array=new int[3][];System.out.println(array);//[[I@3b6eb2ec
// 外層元素/*null:列存的是一維數組,是引用類型,為null*/System.out.println(array[0]);//nullSystem.out.println(array[1]);//null}
}
內存解析
案例1
案例2
案例3
案例4: