1. 程式人生 > >Java數組詳解

Java數組詳解

gpo tr1 引用數據類型 package 隱式 列數 i++ 類型 nbsp

一、數組的概念

  • 數組是多個相同類型數據的組合,實現對這些數據的統一管理
  • 數組中的元素可以是任何數據類型,包括基本數據類型和引用數據類型
  • 數組屬引用類型,數組型數據是對象(object),數組中的每個元素相當於該對象的成員變量

二、一維數組

動態初始化:數組聲明且為數組元素分配空間與賦值的操作分開進行

靜態初始化:在定義數組的同時就為數組元素分配空間並賦值

註意:數組是引用類型,它的元素相當於類的成員變量,因此數組一經分配空間,其中的每個元素也被按照成員變量同樣的方式被隱式初始化

數組一旦初始化,其長度是不可變的

package com.yyx.pratice;

public class JavaPratice {
    public static void main(String[] args) {
       /*
        * 對於基本數據類型byte short int long 
        * 而言:創建數組後,默認值為0
        */
        byte[] byteArr=new byte[2];
        byteArr[0]=1;
        for(byte b:byteArr) {
            System.out.print(b+" ");
        }        
        System.out.println();
        
        
/* * 對於基本數據類型float double * 而言:默認值為0.0 */ float[] floatArr=new float[2]; floatArr[0]=2.1f; for(float f:floatArr) { System.out.print(f+" "); } System.out.println(); /* * 對於基本數據類型char而言:其默認值為空格
*/ char[] charArr=new char[2]; charArr[0]=‘a‘; for(char c:charArr) { System.out.print(c+" "); } System.out.println(); /* * 對於基本數據類型boolean而言,創建數組後,其默認值為false */ boolean[] booleanArr=new boolean[2]; for(boolean c:booleanArr) { System.out.print(c+" "); } System.out.println(); /* * 對於引用類型的變量構成的數組而言:其默認值為null */ String[] strArr=new String[2]; for(String str:strArr) { System.out.print(str+" "); } } }

三、二維數組

package com.yyx.pratice;

public class JavaPratice {
    public static void main(String[] args) {
        /*
         * 一維數組初始化
         */
        int[] arr1 = { 13, 35, 56 };
        int[] arr2 = new int[] { 3, 5, 8 };// 靜態初始化
        int[] arr3 = new int[3];
        arr3[0] = 6;// 動態初始化
        arr3[1] = 9;
        arr3[2] = 12;

        /*
         * 二維數組初始化
         */
        String[][] str1 = { { "Jack", "Tom" }, { "Lucy", "Jerry" } };
        String[][] str2 = new String[][] { { "Jack", "Tom" }, { "Lucy", "Jerry" } };// 靜態初始化
        String[][] str3 = new String[2][2];
        str3[0][0] = "Jack";
        str3[0][1] = "Tom";
        str3[1][0] = "Lucy";
        str3[1][1] = "Jerry";
        for (int i = 0; i < str3.length; i++) { //控制行數
            for (int j = 0; j < str3[i].length; j++) { //控制列數
                System.out.print(str3[i][j] + " ");
            }
        }
    }
}

四、數組在內存中的分配

五、數組的常見異常

  • 空指針異常 NullPointerException
  • 索引越界異常 ArrayIndexOutOfBoundsException
package com.yyx.pratice;

public class JavaPratice {
    public static void main(String[] args) {
        /*
         * 空指針異常
         */
        //第一種
        try {
            boolean[] booleanArr=new boolean[3];
            booleanArr=null;
            System.out.println(booleanArr[0]);            
        } catch (Exception e) {
            e.printStackTrace();
        }    
        //第二種
        try {            
            String[] strArr=new String[3];
            System.out.println(strArr[0].toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        //第三種
        try {
            int[][] intArr=new int[3][];
            System.out.println(intArr[2][0]);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        /*
         * 索引值越界
         */
        try {
            int[] arr=new int[3];
            arr[4]=0;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

六、操作數組的工具類Arrays

Java數組詳解