1. 數組是Java語言中的一種引用資料類型,它是一組相同類型的資料的有序集合。适用于集中管理類型相同、用途相近的多個資料
µ Java的數組要求所有數組元素具有相同的資料類型。 (可以是基本資料類型,也可是引用資料類型)
µ 一旦數組的初始化完成,數組在記憶體中所占的存儲空間将被固定下來,是以數組的長度不可改變。
µ 通過數組元素的索引号(或者說是下角标)來通路數組元素。
µ 數組元素的類型是唯一的,即一個數組裡隻能存儲一種資料類型的資料,而不能存儲多種。
2. 數組的維數可以了解為一個數組中資料組合的層次數,隻有一個層次的資料組合而成的數組被稱為一維數組。兩個一維數組再組合而生成的數組稱為二維數組。
¯ 一維數組的聲明
格式:類型名 變量名[]; 或 類型名[] 變量名;(其位置可以放在元素類型之後、資料名之前;也可以位于資料名之後,效果是一樣的)
例如: int[] arr; double salary[];
String[] args; Student s[];
µ 聲明了數組類型變量,運作時系統隻為引用變量配置設定引用空間,并沒有建立對象,也不會為數組元素配置設定空間,是以尚不能使用任何數組元素。
µ 聲明數組類型變量時不允許指定數組的長度:
int[3] a; ×
3. 數組對象的建立和使用
在Java語言中通常使用關鍵字new建立數組對象,其文法格式為:new 類型名[n]
例如,int [] arr;
arr=new int[3];
4. 注意:在通路數組元素時合法的下标範圍是0~n-1,如果越界,程式編譯時不會報錯,但程式運作時會抛越界異常。
5. 例1: 基本資料類型的一維數組的聲明、建立和使用 。
int[] arr=new int[5];
for(int i=0;i<5;i++)
System.out.print(arr[i]+"\t"); //數組一經建立,元素被初始化為預設值0
例2: 引用類型的一維數組的聲明、建立和使用。
Point[] p;
p=new Point[5];
for(int i=0;i<5;i++){
p[i]=new Point(i,i+1);
p[i].display();
} 引用類型圖解:
6. 數組對象的length屬性
數組對象擁有一個有系統自動提供的特殊屬性length(以隻讀的方式給出數組的長度),該屬性為int類型,可直接通路,在周遊數組元素時非常有用。
例如,for(int i;i<arr.length;i++) …
注意:Java 語言中數組長度并不屬于其資料類型的組成部分,一個聲明為int[]類型的變量a 可以指向一個長度為3的int[] 類型數組對象,也可以指向一個長度為5的int[] 類型數組對象,例如,int[]a; a=new int[3]; a=newint[5];
7. 數組的靜态初始化
如果在建立數組對象時已能确定其各元素的值,則可采用一種簡化的書寫方法來建立和初始化數組對象。
例如:(1) int a[]={12,9,36};
(2) Int a[]=new int(3);
a[0]=12;
a[1]=9;
a[2]=36;
例如:引用類型數組的靜态初始化為:
Point[] p={ new Point(3,5),
new Point(-4,9),
new Point(2,-9),
new Point(-5,-2) };//6行代碼是一條語句
注:(1)這種簡化的建立和初始化數組對象的方式稱為數組的靜态初始化;(2)這種将建立數組對象以及各數組元素指派分開進行的方式稱為動态初始化。
所謂靜态的初始化隻是一種簡化的書寫格式上的約定,既然是約定就不能亂來,例如下面語句是非法的:
Int a[];
a={12,9,36}
靜态初始化隻能在一行輸出。這裡所謂的約定,就是規則的制定者認為有用且有效的強制性規定,作為java程式員編碼行為的準則,java語言規範實際上就是由一系列的約定(文法規則)組成的。