天天看點

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.預設初始化:數組是引用類型,它的元素相當于類的成員變量,是以數組配置設定空間後,每個元素也被按照成員變量的規則被隐士初始化。

執行個體:

TestD.java(動态)

程式代碼

public class TestD

{

    public static void main(String args[]) {

        int a[] ;

        a = new int[3] ;

        a[0] = 0 ;

        a[1] = 1 ;

        a[2] = 2 ;

        Date days[] ;

        days = new Date[3] ;

        days[0] = new Date(2008,4,5) ;

        days[1] = new Date(2008,2,31) ;

        days[2] = new Date(2008,4,4) ;

    }

}

class Date

    int year,month,day ;

    Date(int year ,int month ,int day) {

        this.year = year ;

        this.month = month ;

        this.day = day ;

TestS.java(靜态):

public class TestS

        int a[] = {0,1,2} ;

        Time times [] = {new Time(19,42,42),new Time(1,23,54),new Time(5,3,2)} ;

class Time

    int hour,min,sec ;

    Time(int hour ,int min ,int sec) {

        this.hour = hour ;

        this.min = min ;

        this.sec = sec ;

TestDefault.java(預設):

public class TestDefault

        int a [] = new int [5] ;

        System.out.println("" + a[3]) ;