數組是有序數據的集合,數組中的每個元素具備一樣的數組名和下標來惟一地肯定數組中的元素。java
1. 一維數組數組
1.1 一維數組的定義安全
type arrayName[];函數
type[] arrayName;學習
當中類型(type)可以爲Java中隨意的數據類型,包含簡單類型組合類型,數組名arrayName爲一個合法的標識符,[]指明該變量是一個數組類型變量。spa
另一種形式對C++開發人員可能認爲很是奇怪,只是對JAVA或C#這種開發語言來講,另一種形式可能更直觀,因爲這裏定義的僅僅是個變量而已,系統並未對事實上例化,僅僅需指明變量的類型就能夠,也不需在[]指定數組大小。(第一種形式是否是僅僅是爲了兼容曾經的習慣,畢竟C語言的影響太大了?)指針
好比:code
int intArray[];內存
聲明瞭一個整型數組,數組中的每個元素爲整型數據。與C、C++不一樣,Java在數組的定義中並不爲數組元素分配內存,所以[]中不用指出數組中元素個數,即數組長度,而且對於如上定義的一個數組是不能訪問它的不論什麼元素的。咱們必須爲它分配內存空間,這時要用到運算符new,其格式例如如下:開發
arrayName=new type[arraySize];
當中,arraySize指明數組的長度。如:
intArray=new int[3];
爲一個整型數組分配3個int型整數所佔領的內存空間。
一般,這兩部分可以合在一塊兒,格式例如如下:
type arrayName=new type[arraySize];
好比:
int intArray=new int[3];
1.2 一維數組元素的引用
定義了一個數組,並用運算符new爲它分配了內存空間後,就可以引用數組中的每一個元素了。數組元素的引用方式爲:
arrayName[index]
當中:index爲數組下標,它可以爲整型常數或表達式。如a[3],b[i](i爲整型),c[6*I]等。下標 從0開始,一直到數組的長度減1。對於上面樣例中的in-tArray數來講,它有3個元素,分別爲:
intArray[0],intArray[1],intArray[2]。注意:沒有intArray[3]。
另外,與C、C++中不一樣,Java對數組元素要進行越界檢查以保證安全性。同一時候,對於每個數組都有一個屬性length指明它的長度,好比:intArray.length指明數組intArray的長度。
執行結果例如如下:
C:/>java ArrayTest
a[4]=4
a[3]=3
a[2]=2
a[1]=1
a[0]=0
該程序對數組中的每個元素賦值,而後按逆序輸出。
1.3 一維數組的初始化
對數組元素可以依照上述的樣例進行賦值。也可以在定義數組的同一時候進行初始化。
好比:
int a[]={1,2,3,4,5};
用逗號(,)分隔數組的各個元素,系統本身主動爲數組分配必定空間。
與C中不一樣,這時Java不要求數組爲靜態(static),事實上這裏的變量類似C中的指針,因此將其做爲返回值給其餘函數使用,仍然是有效的,在C中將局部變量返回給調用函數繼續使用是剛開始學習的人很是easy犯的錯誤。
2. 多維數組
與C、C++同樣,Java中多維數組被看做數組的數組。好比二維數組爲一個特殊的一維數組,其每個元素又是一個一維數組。如下咱們主要以二維數爲例來進行說明,高維的狀況是類似的。
2.1 二維數組的定義
二維數組的定義方式爲:
type arrayName[][];
好比:
int intArray[][];
與一維數組同樣,這時對數組元素也沒有分配內存空間,同要使用運算符new來分配內存,而後才幹夠訪問每個元素。
對高維數組來講,分配內存空間有如下幾種方法:
1. 直接爲每一維分配空間,如:
int a[][]=new int[2][3];
2. 從最高維開始,分別爲每一維分配空間,如:
int a[][]=new int[2][];
a[0]=new int[3];
a[1]=new int[3];
完畢1中一樣的功能。這一點與C、C++是不一樣的,在C、C++中必須一次指明每一維的長度。
2.2 二維數組元素的引用
對二維數組中每個元素,引用方式爲:arrayName[index1][index2] 當中index一、index2爲下標,可爲整型常數或表達式,如a[2][3]等,相同,每一維的下標都從0開始。
2.3 二維數組的初始化
有兩種方式:
1. 直接對每個元素進行賦值。
2. 在定義數組的同一時候進行初始化。
如:int a[][]={{2,3},{1,5},{3,4}};
定義了一個3×2的數組,並對每個元素賦值。