數(shù)組的定義和創(chuàng)建
數(shù)組:是多個(gè)相同數(shù)據(jù)類型的組合奈揍,實(shí)現(xiàn)對這些數(shù)據(jù)的統(tǒng)一管理
數(shù)組元素:數(shù)組中的每一個(gè)數(shù)據(jù),成為數(shù)組的一個(gè)元素
- 數(shù)組中的元素可以是任何數(shù)據(jù)類型产上,包括基本數(shù)據(jù)類型和引用數(shù)據(jù)類型
數(shù)組中元素的個(gè)數(shù)灭衷,成為數(shù)組的長度(length)
注:Java語言中聲明數(shù)組時(shí),不能指定其長度岩馍;
數(shù)組的聲明:
數(shù)組類型 數(shù)組名[]
或 數(shù)組類型[] 數(shù)組名
數(shù)組初始化(聲明并指定數(shù)組長度)
int a[]=new int[5];
int[] array;
array=new int[5];
數(shù)組的內(nèi)存模型
- 數(shù)組是存儲多個(gè)相同類型變量的對象。
數(shù)組中的所有元素保存在堆內(nèi)存中抖韩。 - 創(chuàng)建數(shù)組就是在堆中創(chuàng)建一個(gè)數(shù)組對象蛀恩。
-
數(shù)組創(chuàng)建后立即擁有默認(rèn)值。
1.整數(shù)類型數(shù)組默認(rèn)值為0
2.String類型數(shù)組茂浮。默認(rèn)是null
3.char類型數(shù)組赦肋,默認(rèn)是0對應(yīng)的字符。(空字符)
4.浮點(diǎn)類型數(shù)組励稳,默認(rèn)是0.0(float和double都是)
5.boolean類型數(shù)組,默認(rèn)值是false
- 索引從0開始
- 連續(xù)分配
數(shù)組初始化
在創(chuàng)建數(shù)組的同時(shí)就為數(shù)組元素分配空間并賦值
數(shù)組類型 數(shù)組名[]={元素1囱井,元素2驹尼,...}
或
數(shù)組類型 數(shù)組名[]=new 數(shù)組類型[]{元素1,元素2庞呕,...}
int a[]={1,2,3,4};或int a[]=new int[]{1,2,3,4};
數(shù)組元素的賦值
- 數(shù)組下標(biāo)從0開始
- 數(shù)組下標(biāo)可以是整型常量或整型表達(dá)式
- 數(shù)組的查詢效率高新翎,可以通過下標(biāo)進(jìn)行對數(shù)組的定位檢索
動態(tài)初始化:使用new創(chuàng)建數(shù)組,不分配元素住练,都是默認(rèn)值(指定長度)
靜態(tài)初始化:在創(chuàng)建數(shù)組的同時(shí)進(jìn)行賦值(指定內(nèi)容)
foreach循環(huán)訪問數(shù)組
foreach循環(huán):JDK5以后版本中地啰,增加的循環(huán)方式,是for循環(huán)的特殊簡化方式讲逛。
語法:
for(數(shù)組元素類型 變量名:數(shù)組名){
語句(遍歷數(shù)組的話打印System.out.println(變量名)
}
按下標(biāo)順序?qū)?shù)組從0開始的每個(gè)值依次賦給左邊變量亏吝,數(shù)組長度為for循環(huán)次數(shù)
數(shù)組長度
數(shù)組名.length
特點(diǎn):
- 數(shù)組的長度必須>=0
- length為只讀,不能被賦值
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[];
int b[]=null;
int c[]= {};
int d[]=new int[0];
// System.out.println(a.length);The local variable a may not have been initialized報(bào)錯(cuò)變量未初始化
// System.out.println(b.length);空指針異常
System.out.println(c.length);//0
System.out.println(d.length);//0
}
二維數(shù)組
定義格式:
int a[][]=new int[3][];
int b[][]=new int[3][4];
int c[][]= {{1,2,3},{2,3,4}};
int d[][]= new int[][]{{1,2,3},{2,3,4}};