Java-5 數組

一維數組

一維數組:
     特點:
        1.指定一種數據類型
        2.指定長度
     聲明:
        數組類型  數組名稱[];
        數組類型[]  數組名稱;

     創建:
         數組名稱 = new 數組類型[長度];

     初始化:
         數組類型  數組名稱[]={數組元素1,數組元素2,....}
         數組類型  數組名稱[]=new 數組類型[]{數組元素1,數組元素2,....}

     取值:
         數組名稱[下標];

     賦值:
         數組名稱[下標] = 值;

     屬性:
         length:獲取數組的元素個數,即數組長度

     遍歷:for循環  或 foreach遍歷

     異常:下標越界,java.lang.ArrayIndexOutOfBoundsException

stack(棧):系統分配,大小限制,先進後出
         一般用來存儲基本數據類型(局部變量)、與 引用類型的地址值

 heap(堆):程序員控制,先進先出,當程序員使用new關鍵字時,系統將分配對應的堆內存來存儲對應的對象值
          一般用來存儲引用類型的值



     //聲明數組
    int[] intArray;
    //系統分配棧(stack)來存儲當前引用對象intArray、strArray的地址
   //System.out.println(intArray.toString());
   //此時intArray爲null,null無法使用任何方法

    //創建數組
    intArray = new int[5];      
    //當使用new關鍵字時,系統將分配堆(heap)內存給當前對象存儲值
    //動態初始化:當數組被定義時,所有元素均有默認初始值,例如int默認值爲0
    System.out.println(intArray.toString());//[I@41649a55

    //初始化
    //intArray = {1,2,3,4,5};          
    //not ok 只允許在聲明且創建的同時賦初始值

    int[] intArray2 = {1,2,3,4,5};     
    //ok 靜態初始化,即創建數組的同時完成初始值的賦值工作

    int[] intArray3 = new int[]{1,2,3};
    //ok 靜態初始化,即創建數組的同時完成初始值的賦值工作

    //取值
    int num = intArray2[0];
    System.out.println(num);

    int num1 = intArray2[1];
    System.out.println(num1);

    int num4 = intArray2[5]; 
    //not 長度爲5,下標爲0-4之間,下標5即爲下標越界:java.lang.ArrayIndexOutOfBoundsException
    System.out.println(num4);

    //賦值
    intArray2[4] = 100;
    System.out.println(intArray2[4]);

    //數組屬性length(獲取數組的長度)
    int length = intArray2.length;
    System.out.println("數組的長度:" + length);

    /*
     * for循環遍歷取值
     */
    for(int i=0;i<intArray2.length;i++)
    {
        int num2 = intArray2[i]; //通過下標取值
        System.out.print( num2 + "\t");
    }

    System.out.println();

    /*
     * foreach循環
     */
    for (int num3 : intArray2) {
        System.out.print(num3 + "\t");
    }

二維數組

/**
 *  多維數組(以二維數組爲例):
 *      聲明:
 *          數組類型[][] 數組名稱;
 *          數組類型    數組名稱[][];
 *          數組類型[] 數組名稱[];
 * 
 *      創建:
 *          數組類型[][] 數組名稱 = new 數組類型[行數][列數];
 *          數組類型[][] 數組名稱 = new 數組類型[行數][];
 *          數組類型[][] 數組名稱 = new 數組類型[][列數];--------錯誤
 *      
 *      初始化:
 *          數組類型[] 數組名稱 = {1,2,3,4,5} --一維
 *          數組類型[][] 數組名稱 = {
 *                             {元素1,元素2,元素3,...},
 *                             {元素3,元素4,元素5,...},
 *                             {元素6,元素7,元素8,...},
 *                             {元素9,元素10,元素11,...},
 *                              ....
 *                            }
 *          數組類型[][] 數組名稱 = new 數組類型[][]{
 *                             {元素1,元素2,元素3,...},
 *                             {元素3,元素4,元素5,...},
 *                             {元素6,元素7,元素8,...},
 *                             {元素9,元素10,元素11,...},
 *                              ....
 *                            }
 * 
 */




    //聲明
    int[][] intArray;
    int[][] intArray3;
    int[][] intArray5;

    //創建
    intArray = new int[4][3];//4行3列
    intArray3 = new int[5][];//5行N列
    //intArray5 = new int[][4];//N行4列 ----錯誤

    //初始化(四行三列的二維數組)
    int[][] intArray2 = {
                            {1,2,3},
                            {4,5,6},
                            {7,8,9},
                            {10,11,12}
                        };
    int[][] intArray4 = new int[][]{
                                        {1},
                                        {2,3,4},
                                        {5,6},
                                        {7},
                                        {8,9}
                                    };
    /*
     * 靜態賦值:方式一
     */
    int[][] intArray6 = new int[3][3];
    //第一行
    int[] oneRow = new int[3];//等同於  int[] oneRow = new int[]{11,12,13};
    oneRow[0] = 11;
    oneRow[1] = 12;
    oneRow[2] = 13;
    intArray6[0] = oneRow;//將第一行添加到二維數組
    //第二行
    int[] twoRow = new int[3];//等同於  int[] twoRow = new int[]{21,22,23};
    twoRow[0] = 21;
    twoRow[1] = 22;
    twoRow[2] = 23;
    intArray6[1] = twoRow;//將第二行添加到二維數組
    //第三行
    int[] threeRow = new int[3];//等同於 int[] threeRow = new int[]{31,32,33};
    threeRow[0] = 31;
    threeRow[1] = 32;
    threeRow[2] = 33;
    intArray6[2] = threeRow;//將第三行添加到二維數組

    /*
     * 靜態賦值:方式二
     */
    int[][] intArray7 = new int[3][3];
    //第一行
    intArray7[0][0] = 11;
    intArray7[0][1] = 12;
    intArray7[0][2] = 13;
    //第二行
    intArray7[1][0] = 21;
    intArray7[1][1] = 22;
    intArray7[1][2] = 23;
    //第三行
    intArray7[2][0] = 31;
    intArray7[2][1] = 32;
    intArray7[2][2] = 33;

    /*
     * 二維數組遍歷
     */
    //遍歷行:方式一
    for(int i=0;i<intArray7.length;i++)
    {
        //遍歷獲取每一行的數組
        int[] row = intArray7[i];
        //遍歷行中每列值
        for(int j=0;j<row.length ; j++)
        {
            int column = row[j];         //-------------不同之處
            System.out.print(column + "\t");
        }
        System.out.println();//換行
    }
    //遍歷行:方式二
    for(int i=0;i<intArray7.length;i++)
    {
        //遍歷行中每列值
        for(int j=0;j<intArray7[i].length ; j++)
        {
            int column = intArray7[i][j];  //-------------不同之處
            System.out.print(column + "\t");
        }
        System.out.println();//換行
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章