數(shù)組概述
- 數(shù)組可以看成是多個相同類型數(shù)據(jù)組合攀涵,對這些數(shù)據(jù)的統(tǒng)一管理
- 數(shù)組變量屬引用類型,數(shù)組也可以看成是對象,數(shù)組中的每個元素相當(dāng)于該對象的成員變量
- 數(shù)組中的元素可以是任何數(shù)據(jù)類型煞赢,包括基本類型和引用類型
一維數(shù)組
- 一維數(shù)組的聲明
type var[ ]; 或type[ ] var; - 例如:
int a1[ ]; int[ ] a2; double b[ ] ;
Person[ ] p1; String s1[ ] -
Java語言中聲明數(shù)組時不能指定其長度(數(shù)組中元素的個數(shù)),例如:
int a[5]; // 非法
image.png
數(shù)組初始化
- 動態(tài)初始化
數(shù)組定義與為數(shù)組元素分配空間和賦值的操作分開進(jìn)行哄孤,例如:
public class Test{
public static void main(String args[]) {
int a[];
a = new int[3];
a[0] = 3; a[1] = 9; a[2] = 8;
Date days[];
days = new Date[3];
days[0] = new Date(1, 4, 2004);
days[1] = new Date(2, 4 , 2004);
days[2] = new Date(3, 4 , 2004);
}
}
class Date {
int year,month,day;
Date(int y, int m, int d) {
year = y; month = m; day = d;
}
}
- 靜態(tài)初始化:
在定義數(shù)組的同時就為數(shù)組元素分配空間并賦值照筑,例如:
public class Test{
public static void main(String args[]) {
int a[] = {3, 9, 8};
Date days[] = {
days = new Date[3];
days[0] = new Date(1, 4, 2004);
days[1] = new Date(2, 4 , 2004);
days[2] = new Date(3, 4 , 2004);
};
}
}
class Date {
int year,month,day;
Date(int y, int m, int d) {
year = y; month = m; day = d;
}
}
數(shù)組元素的默認(rèn)初始化
- 數(shù)組是引用類型,它的元素相當(dāng)于類的成員變量,因此數(shù)組分配空間后凝危,每個元素也被按照成員變量的規(guī)則被隱式初始化波俄,如:
public class Test{
public static void main(String args[]) {
int a[] = new int [5];
Date days[] = new Date[3];
days = new Date[3];
System.out.println(a[3]);
System.out.println(days[2]);
}
}
class Date {
int year,month,day;
Date(int y, int m, int d) {
year = y; month = m; day = d;
}
}
-輸出結(jié)果
0
null
數(shù)組元素的引用
- 定義并用運算符new為之分配空間后,才可以引用數(shù)組中的每個元素蛾默,數(shù)組元素的引用方式為:
- arrayName[index]
其中index為數(shù)組元素下標(biāo)懦铺,可以是整型常量或整型表達(dá)式。如:
a[3],b[i],c[6*i] - 數(shù)組元素下標(biāo)從0開始支鸡;長度為n的數(shù)組的合法下標(biāo)取值范圍為
0 ~ n-1 - 每個數(shù)組都有一個屬性length指明它的長度冬念,例如:
a.length的值為數(shù)組a的長度(元素的個數(shù))