數組是相同類型的變量按順序組成的一種複合數據類型,稱這些相同類型的變量爲數組的元素或單元。數組經過數組名加索引來使用數組的元素。java
數組屬於引用型變量,建立數組須要通過聲明數組和爲數組分配變量兩個步驟。數組
聲明數組測試
聲明數組包括數組變量的名字(簡稱數組名)、數組的類型。spa
聲明一維數組有下列兩種格式翻譯
數組的元素類型 數組名[];3d
數組的元素類型 [] 數組名;blog
例如: float boy[];索引
float[] boy;內存
聲明二維數組有下列兩種格式get
數組的元素類型 數組名[][];
數組的元素類型 [][] 數組名;
例如: char cat[][];
char[][] cat;
分配變量
聲明數組後,還必須爲它分配內存空間,爲一維數組分配內存空間的格式以下:
數組名字 = new 數組元素的類型[數組元素的個數];
例如: float boy[];
boy= new float[4];
聲明數組和建立數組能夠一塊兒完成,例如:
float boy[]=new float[4];
這是一個長度爲4的boy數組類型
二維數組和一維數組同樣,在聲明以後必須用new運算符爲數組分配內在空間。
例如: int mytwo[][];
mytwo = new int [3][4];
聲明數組和建立數組能夠一塊兒完成,例如:
int mytwo[][] = new int[3][4];
Java採用「數組的數組」來聲明多維數組。上述建立的二維數組mytwo就是由3個長度爲4的一維數組:mytwo[0]、mytwo[1]和mytwo[2]構成的。
使用數組
一維數組經過索引符訪問本身的元素,如boy[0],boy[1]等。須要注意的是索引從0開始 。
二維數組也經過索引符訪問本身的元素,如a[0][1],a[1][2]等。須要注意的是索引從0開始。
好比聲明建立了一個二維數組a:
int a[][] = new int[2][3];
那麼第一個索引的變化範圍爲從0到1,第二個索引變化範圍爲從0到2。
Length的使用
數組的元素的個數稱做數組的長度。
對於一維數組,「數組名.length」的值就是數組中元素的個數。
對於二維數組「數組名.length」的值是它含有的一維數組的個數。
例如,對於
float a[] = new float[12];
int b[][] = new int[3][6];
a.length的值12;而b.length的值是3。
數組的初始化
建立數組後,系統會給數組的每一個元素一個默認的值,如,float型是0.0。
在聲明數組的同時也能夠給數組的元素一個初始值,如:
float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f};
也能夠直接用若干個一維數組初始化一個二維數組,這些一維數組的長度不盡相同,
例如:
int a[][]= {{1}, {1,1},{1,2,1}, {1,3,3,1},{1,4,6,4,1}};
數組的引用
數組屬於引用型變量,所以兩個相同類型的數組若是具備相同的引用,它們就有徹底相同的元素。
例如,對於int a[] = {1,2,3}, b[ ]= {4,5};數組變量a和b分別存放着引用0x35ce36和0x757aef。
若是使用了下列賦值語句(a和b的類型必須相同)a=b;那麼,a中存放的引用和b的相同,這時系統將釋放最初分配給數組a的元素,使得a的元素和b的元素相同。
數組的遍歷
基於循環語句的遍歷,語法格式以下:
for(聲明循環變量:數組的名字) {
… …
}
其中,聲明的循環變量的類型必須和數組的類型相同。
能夠將這種形式的for語句中翻譯成「對於循環變量依次取數組的每個元素的值」。
示例:
public class Demo11{
public static void main(String args[]){
int a[] = {1,2,3,4}; /*建立一個int類型的數組
System.out.println("數組元素的個數:"+a.length);
System.out.println("a[1]:"+a[1]); /*經過下標來訪問具體的數組元素
for(int i=0;i<a.length;i++){ /*執行完後,會把數組中每一個元素都遍歷到
System.out.println("a["+i+"]:"+a[i]);
}
}
}
測試數組
遍歷