1. 程式人生 > >java陣列宣告及初始化

java陣列宣告及初始化

 一維陣列
1)   int[] a;   //宣告,沒有初始化


2)   int[] a=new int[5];   //初始化為預設值,int型為0


3)   int[] a={1,2,3,4,5};   //初始化為給定值


4)   int[] a=new int[]{1,2,3,4,5};   //同(3) 
     int[] a=new int[5]{1,2,3,4,5};   //錯誤,如果提供了陣列初始化操作,則不能定義維表示式


5)   int[] a;  
     a=new int[5];    //正確,同(2)一樣

int[] a;
      a={1,2,3,4,5};   //錯誤,陣列常量只能在初始化操作中使用,如(3)


6)   int a[];
     a[0]=1;   //錯誤,因為陣列沒有初始化,不能賦值
     a[1]=2; 

二維陣列
1)   int[][] a;  //宣告,沒有初始化


2)   int[][] a=new int[2][3];    //初始化為預設值,int型為0


3)   int[][] a={{1,2},{2,3},{3,4}};   //初始化為給定值
     int[][] a={{1,2},{2,3},{3,4,5}};   //沒有錯,陣列空間不是連續分配的,所以不要求每一維的大小相同


4)   int[][] a=new int[2][];
     a[0]=new int[3];  //a[0]其實就是一個數組
     a[1]=new int[4];  //每一維的大小可以不一樣;


5)   int[][] a=new int[][]{{1,2},{2,3},{3,4,5}};   //同(3) 
     int[] a=new int[5]{{1,2},{2,3},{3,4,5}};  //錯誤,如果提供了陣列初始化操作,則不能定義維表示式

int[][] a=new int[2][];
     a[0]={1,2,3,4,5};   //錯誤,陣列常量只能在初始化操作中使用


6)   int[][] a=new int[2][];
     a[0][1]=1;   //錯誤,第二維沒有初始化,不能賦值,java.lang.NullPointerException異常


總結: 1.二維就是陣列的陣列,裡面的陣列大小不要求一樣
       2.不管一維還是二維,在使用前(賦值,訪問)必須初始化,可以用new預設初始化,也可以用陣列常量初始化

1.動態初始化:陣列定義與為陣列分配空間和賦值的操作分開進行;
2.靜態初始化:在定義數字的同時就為陣列元素分配空間並賦值;
3.預設初始化:陣列是引用型別,它的元素相當於類的成員變數,因此陣列分配空間後,每個元素也被按照成員變數的規則被隱士初始化。