一、數組概述
1. 數組可以看成是多個相同類型數據組合,對這些數據的統一管理。
2. 數組變量屬引用類型,數組也可以看成是對象,數組中的每個元素相當于該對象的成員變量。
3. 數組中的元素可以是任何數據類型,包括基本類型和引用類型
二、一維數組的聲明
1.一維數組的聲明方式: type var[ ] ;或type[ ] var ;
2.java語言中聲明數組時不能指定其長度(數組中元素的個數),
例如: int a[5] ; 非法
三、數組對象的創建
Java中使用關鍵字new創建數組對象,格式為:數組名 = new 數組元素的類型 [數組元素的個數]
例如:
public class Test { public static void main(String args[]) { s = new int[5]; for (int i=0; i< 5; i++) { s[i] = I; } }}四、元素為引用類型的數組
元素為引用數據類型的數組中的每一個元素都需要實例化。
public class Test { public static void main(String args[]) { Date[] days; days = new Date[3]; for (int i = 0; i < 3; i++) { days[i] = new Date(2004,4,i+1); } } class Date { int year;int month;int day; Date(int y,int m,int d) { year = y; month = m; day = d; } }}內存分析:
days
Date[] days聲明數組時,由于未創建數組對象,棧內存中內容為NULL。
執行到days = new Date[3],棧中內容更新,指向堆中new出來的對象。堆中的內容也沒有初始化,所以也是NULL
執行完for循環之后,days[0], days[1], days[2]分別都指向了一個新的對象
五、數組初始化
1. 動態初始化
數組定義與為數組分配空間和賦值的操作分開進行,先分配,后賦值。
int a[ ] ; //定義
a = new int [3] ; //分配空間
a[0] = 3 ; a[1] = 9 ; a[2] = 8 ; //賦值
2. 靜態初始化
在定義數組的同時就為數組元素分配空間并賦值。例如:
int a [ ] = {3,9,8};
或
Date days [ ] = {new Date(1,4,2004),
new Date(2,4,2004),
new Date(3,4,2004)
}
3. 數組元素的默認初始化
數組是引用類型,它的元素相當于類的成員變量,因此數組分配空間時,每個元素也按照成員變量的規則被隱式初始化。如,double 類型,默認 0.0;引用類型,默認NULL; 邏輯類型,默認 false。
六、數組元素的引用
1. 定義并用運算符 new 為之分配空間后,才可以引用數組元素中的每個元素,數組元素的引用方式為:
arrayName[index] 2. index為數組元素下標,可以是整型常量或整型表達式。如:a[3], b[i], c[6*i]
3. 數組元素下標從0開始;長度為n的數組的合法下標取值范圍為 0~n-1
4. 每個數組都有一個屬性 length 指明它的長度。 a.length的值為數組a的長度(元素個數)
注意length后不要加括號,這里的length是一個屬性,不是一個方法。與String區分開來。
新聞熱點
疑難解答