二維數組


二維數組

一、二維數組

1、二維數組的含義:
		就是元素是一維數組的數組
		舉例:
		   {{11,22},{11,33},{55,88}}
2、二維數組的定義格式:
            格式1:
                數據類型[][] 變量名 = new 數據類型[m][n];
                左邊:
                    數據類型:表示最終元素的數據類型
                    [][]:表示是一個二維數組
                    變量名:二維數組的名稱
                右邊:
                    new:表示為二維數組分配內存空間
                    [m]:表示這個二維數組中有個元素,其中元素表示的是m個一維數組
                    [n]:表示的是每一個一維數組中有n個元素,元素的數據類型與定義時的數據類型一致

               舉例:int[][] arr = new int[3][2]
                    解釋:表示的是定義了一個名為arr的二維數組,元素是由3個一維數組組成,其中
                        每個一維數組的元素的個數為2個
 ==================================================================================
            格式2:
             	數據類型[][] 變量名 = new 數據類型[m][]
             右邊:
             	[]:這里暫時不將每個一維數組中的元素個數寫死,以將來傳入的一維數組元素個數而定
             舉例:
            	int[][] arr = new int[3][]
  ==================================================================================
            格式3:
            數據類型[][] 變量名 = new 數據類型[][]{{元素…},{元素…},{元素…},...}
            舉例:
            int[][] arr = new int[][]{{1,2},{11,22,33},{100,200,300},{10,20}};
            
             簡化格式:
            數據類型[][] 變量名 = {{元素…},{元素…},{元素…},...};
            舉例:
                int[][] arr = {{1,2},{11,22,33},{100,200,300},{10,20}};
====================================================================================     
3、注意格式的轉換:
			以下定義的格式也算正確(不推薦使用)
                        數據類型 變量名[][] = new 數據類型[m][n];
                        數據類型[] 變量名[] = new 數據類型[m][n];
                    舉例:int[][] arr = new int[2][3]; (推薦第一種)
                          int arr[][] = new int[3][4];
                          int[] arr[] = new int[2][3];
4、第一種格式:
			獲取二維數組中元素的地址值,此地址值就是一維數組的地址值
public class Array2Demo1 {
    public static void main(String[] args) {
        //使用第一種格式定義一個二維數組,每一個一維數組的元素個數為2
        int[][] arr = new int[3][2];
        //3代表的是由三個一維數組組成
        //2代表的是每一個一維數組的元素個數為2個
        //按照之前的輸出格式,我們先輸出名字
        System.out.println(arr);   //輸出的是二維數組在堆內存中的地址值 [[I@1540e19d
        System.out.println(arr[0]);//輸出的是第一個一維數組在內存中的地址值 [I@677327b6
        System.out.println(arr[1]);//輸出的是第二個一維數組在內存中的地址值 [I@14ae5a5
        System.out.println(arr[2]);//輸出的是第三個一維數組在內存中的地址值 [I@7f31245a
5、獲取元素的方法
public class Array2Demo1 {
    public static void main(String[] args) {
        //使用第一種格式定義一個二維數組,每一個一維數組的元素個數為2
        int[][] arr = new int[3][2];
        //數組獲取元素的方法是通過索引獲取
        System.out.println(arr[0][0]); //0  //輸出的是第一個一維數組中第一個元素值
        System.out.println(arr[0][1]); //0  //輸出的是第一個一維數組中第二個元素值
        System.out.println(arr[2][1]); //0 //輸出的是第三個一維數組的第二個元素值

當使用兩種不同格式定義二維數組,未賦值之前,二者輸出的地址值不同

6、第二種格式:
public class Array2Demo2 {
    public static void main(String[] args) {
        //使用第二種格式定義一個二維數組,每一個一維數組的元素個數沒有定
        int[][] arr = new int[3][];
        System.out.println(arr);   //輸出的是二維數組本身的地址值 [[I@1540e19d
        System.out.println(arr[0]); //輸出的是二維數組中第一個一維數組的地址值 null
        System.out.println(arr[1]); //輸出的是二維數組中第二個一維數組的地址值 null
        System.out.println(arr[2]); //輸出的是二維數組中第三個一維數組的地址值 null
   =======================給二維數組的元素賦值================================     
        //初始化一個元素個數為2個的一維數組,賦值給二維數組中第一個元素
        arr[0] = new int[2];
        //初始化一個元素個數為3個的一維數組,賦值給二維數組中第二個元素
        arr[1] = new int[3];
        //初始化一個元素個數為4個的一維數組,賦值給二維數組中第三個元素
        arr[2] = new int[4];
==========================賦值后地址值不是null===================================
        System.out.println(arr); //輸出的是二維數組本身的地址值 [[I@1540e19d
        System.out.println(arr[0]); //輸出的是二維數組中第一個一維數組的地址值 [I@677327b6
        System.out.println(arr[1]); //輸出的是二維數組中第二個一維數組的地址值 [I@14ae5a5
        System.out.println(arr[2]); //輸出的是二維數組中第三個一維數組的地址值[I@7f31245a
        //獲取二維數組中第二個一維數組中的第1個元素
        System.out.println(arr[1][0]);  //默認為0



7、第三種格式:
public class Array2Demo3 {
    public static void main(String[] args) {
        //使用二維數組定義格式2定義
        int[][] arr = {{1,2},{11,22,33},{100,200,300},{10,20,30,40}};

        System.out.println(arr); //輸出二維數組本身的地址值
        System.out.println(arr[0]); //輸出二維數組中第一個一維數組的地址值
        System.out.println(arr[1]); //輸出二維數組中第二個一維數組的地址值
        System.out.println(arr[2]); //輸出二維數組中第三個一維數組的地址值
        System.out.println(arr[3]); //輸出二維數組中第四個一維數組的地址值

二、二維數組的遍歷以及包裝

1、需要兩個for循環:
		外部for循環遍歷獲取的是每一個一維數組
		內部for循環遍歷的是獲取到的每一個一維數組中每個元素值
二維數組遍歷
        int[][] arr = {{1,2},{11,22,33},{100,200,300},{10,20,30,40}};
        分析:
            1、先獲取每一個一維數組
            2、一次遍歷每一個一維數組中的元素值
public class Array2Test1 {
    public static void main(String[] args) {
   		 //定義一個二維數組
        int[][] arr ={{1,2},{11,22,33},{10,20,30,40}};
			
        for(int i =0;i<arr.length;i++){	//外層for獲取每一個一維數組
            for(int j=0;j<arr[i].length;j++){ //內層for獲取每一個一維數組的元素值
                if(j==0){
                    System.out.print("["+arr[i][j]+","); //遍歷包裝,為了美觀
                }else if(j==arr[i].length-1){
                    System.out.print(arr[i][j]+"]");  //遍歷包裝,為了美觀
                }else{
                    System.out.print(arr[i][j]+",");  //中間數直接輸出,不需要包裝
                }

            }
        }
        }
    }

            執行結果如下:
            
            [1,2][11,22,33][10,20,30,40]
            Process finished with exit code 0

1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM