數組
數組:是有相同類型的、用一個標識符名稱封裝到一起的一個對象序列或基本數據類型數據序列。
Ø 數組是一種最簡單的複合數據類型。
Ø 數組可以是一維的也可以是多維的。
一維數組定義:
type arrayName[ ] 或 type[ ] arrayName
說明:
type : 可以是java中任意的數據類型,包括簡單類型和複合類型(也可以是數組)
arrayName :爲一個合法的標識符;
[ ]指明該變量是一個數組類型的變量。
聲明數組變量:
例如聲明一個數組x:
int x[ ];
int [ ] x;
Ø 聲明一個數組,每個元素都是整數數據。
Ø 聲明的時候不指定數組的長度。
Ø 只聲明的數組是不能訪問它的任何元素的。
爲數組分配空間:
用new關鍵爲對象分配其內存空間。
type arrayName = new type[arraySize]
例如: int[] x = new int[100];
通過引用來使用數組元素 :arrayName[index]
Ø index爲數組下標,可是整型常數或表達式。
Ø index取值從 0 到 arraySize-1;
當 x = null 即該數組對象不再被任何引用變量使用的時候,“垃圾回收器”將自動釋放該內存資源。
數組的初始化:靜態初始化和動態初始化。
靜態初始化:初始化時由程序員顯示指定每個數組元素的初始值,由系統決定數組長度。
例如:int ia[ ]={1,2,3,4};
int ia[ ]=new int[ ]{3,4,5};
動態初始化:初始化時程序員只指定數組長度,由系統爲數組元素分配初始值。
例如:int intArray[];//聲明數組
intArray = new int[5];//爲數組分配空間
注意:聲明數組時,無論用何種方式定義數組,都不能指定其長度
例如:int a[5]; L錯誤:因爲聲明的時候不能指定長度
使用數組時要注意的問題:
1. 空指針異常(NullPointException)
只聲明但沒有初始化的時候直接使用該變量。
2. 數組越界異常(ArrayIndexOutBoundsException)
所有數組的下標都從0開始
int[] a ={1,2,3};
for (int i= 0; i< a.length; i++){
System.out.println(a[i]);
}
其中length屬性表示數組的長度。
多維數組
Ø 多維數組(數組的數組):java沒有真正的多維數組,只有數組的數組
Ø 二維數組的定義
type arrayName[ ][ ];或 type[ ][ ] arrayName;
例子:
int xx[ ][ ] = new int[3][3];
int[ ][ ] xx = {{3,2,7},{1,5},{6}};
3 |
2 |
7 |
1 |
5 |
6 |
Ø 靜態初始化
int intArray[ ][ ]={{3,2,7},{1,5},{6}};
Ø Java語言中,由於把二維數組看作是數組的數組,數組空間不是連續分配的,所以不要求二維數組每一維的大小相同。
Ø 動態初始化
int[][] xx = new int[3][]; //指定一個3行n列的數組
xx[0] = new int[3]; //指定第一行爲3列
xx[1] = new int[2]; //指定第二行爲2列
Ø 在Java語言中,必須首先爲最高維分配引用空間,然後再順次爲低維分配空間。