JAVA中一維數組和二維數組的定義

來源:互聯網
上載者:User

在java中數組被看成是一個對象

在定義數組時,有兩種定義方法:int[] a 和int a[];第二種是C/C++對數組定義方式,對於JAVA建議採用第一種定義方式。

總的原則:任何對象在被調用之前必須先被初始化!


1 一維數組的定義


  //定義包含三個元素的一維數組

  //方法1,先new對象,然後再初始化每個元素



  int[] a = new int[3]; 

  a[0] = 1;

  a[1] = 2;

  a[2] = 3;

 方法一要注意的是不能這樣寫:

  int[] a = new int[3];

  a = {1,2,3};

原因是用new int[3]這種方式建立對象,對象已經被初始化並賦初值為0;可以用下面代碼驗證:

int[] d = new int[3];

for(int i=0;i<d.length;i++){

  System.out.println(d[i]);

}

輸入結果是:0 0 0

如果再用a = {1,2,3};來賦值,大家知道常量是不能再被賦值的,不可修改的。



  //方法2,直接賦初值來建立對象



  int[] b = {1,2,3};



 //方法3,new完對象直接初始化


  int[] c = new int[]{1,2,3};

方法三要注意的是不能這樣寫: int[] c = new int[3]{1,2,3};

即這種方法不能指定維度,原因:如果指定了數組初始化操作,則不能定義維運算式。



注意:如果用new定義數組時,必須指定其維度,這樣定義是錯誤的: int[] d = new int[];

            如果無法確定其元素個數,可以這樣定義:int[] e = {};

2 二維數組的定義


基本與一維數組類似


//定義一個3行5列的二維數組

//方法1,先new對象,然後再初始化每個元素



int[][] a = new int[3][5]; 

a[0][0]=1;

a[0][1]=2;

a[0][2]=3;

 

//方法2,直接賦初值來建立對象


int[][] b = {{1,1,1,1,1}, {2,2,2,2,2}, {3,3,3,3,3} };

 

//方法3,new完對象直接初始化


int[][] a = new int[][]

{{1,1,1,1,1}, {2,2,2,2,2}, {3,3,3,3,3} };





定義二維數組必須指定其行數,列數可以指定,可以不指定。

這樣定義是正確的:int[][] d = new int[3][];

這樣定義是錯誤的:int[][] d = new int[][4]; int[][] d = new int[][];

也可以定義不規則數組:

arr = new int[2][];

        arr[0] = new int[3];


        arr[1] = new int[5];


3 數組的長度


   length是數組的一個屬性(不是方法!),對於一維數組int[] b = {1,2,3}; b.length的值是3,

對於二維數組,首先研究一下它的配置細節:int[][] arr = new int[2][3];

上面這個程式片段中,配置了
2

3
列的二維數組對象,由於資料類型是
int
,所以數組元素的預設元素為
0


其實
arr[0]

arr[1]
是兩個一維數組對象,其長度各為
3
,而
arr
類型是
int[] []
,內容值為
arr[0]

arr[1]
。其關係1
所示。



 1 
二維數組的配置關係

從圖
1
中可以看到,
arr
引用
int[] []
類型的對象,內容包括
arr[0]

arr[1]
,而
arr[0]

arr[1]
再分別引用一個一維數組對象。

因此
arr.length

arr[0].length
所表示的長度意義是不同的,arr.length表示的是數組的行數,arr[i].length表示的是指定行所包含的元素數。本例中,arr.length=2,arr[0].length=3。




4 數組的初始值








 

 








 

 


byte

0

float

0.0f

short

0

double

0.0d

int

0

char

/u0000

long

0L

boolean

false

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.