一.數組的概念
數組是編程語言中常見的一種數據結構,可以存儲多個數據,每個數組元素存放一個數據,通常可以通過數組元素的 索引來訪問數組元素,包括賦值,取值,同時,java語言的數組具有其特有的特征。
數組也是一種類型。Java中的數組要求所有的數組元素具有相同的數據類型。因此在一個數組中,數組元素的類型是
唯一的,即一個數組只能存儲一種數據類型的數組。
Java的數組即可以存儲基本類型的數據,也可以存儲引用類型的數據,只要數組元素的類型統一即可。
數組也是一種數據類型,它本身是一種引用類型,例如int是一個基本類型,但int[]就是一種引用類型了。
由於java語言面向對象的特征,類與類之間支持繼承關系,所以數組的數組元素之間可以是父子關系,
但是該數組的數據類型仍然是唯一的,指向數組元素的最高父類,例如有一個水果數組,要求每個元素是水果,但它數組 元素可以是蘋果,也可以是香蕉,這是他們都繼承了fruit類,因此數組元素的類型還是唯一的
二.數組的定義
Java支持兩種語法格式定義數組:
type[] arrayName; //推薦這種方式,語義明確,可讀性強
type arryName[]; //早期使用,不推薦
數組是一種引用類型的變量,因此使用它定義變量時,僅僅定義了一個引用變量(也就是定義了一個空指針),
還未指向任何有效的內存,因此定義數組時不能指定數組的長度,也不能被使用。
三.數組的初始化
Java語言中數組必須先初始化才能被使用。所謂初始化,就是為數組的數組元素分配內存空間,並為每個數組元素
賦初始值。
數組的初始化有兩種方式:
1.靜態初始化
語法格式是:
arrayName=new type[]{element1,element2,element3,...}; //簡化格式如下 arrayName={element1,element2,element3,...};
靜態初始化時,顯式指定的數據類型必須與new關鍵字后面的type類型相同,或者是其子類類型。
2.動態初始化
動態初始化只指定數組長度,由系統為每個數組元素賦初始值,動態初始化語法格式如下:
arrayName=new type[length];
執行動態初始化時,程序員只需指定數組的長度,幾位每個數組元素分配所需的內存空間,系統負責為這些數組元素分配初始值。指定類型的規則如下:
a)數組元素類型是基本類型的整數類型(byte,short,int,long),則指定初始值0;
b)數組元素類型是基本類型的浮點類型(float,double),則指定初始值0.0;
c)數組元素類型是基本類型的字符類型(char),則賦初始值'\u0000';
d)數組元素類型是基本類型的布爾類型(boolean),則賦初始值false;
e)數組元素類型是引用類型(類,接口,數組),則賦初始值null;
四.for-each遍歷數組
通過索引訪問數組元素時,索引不能小於0或大於等於數組的長度,否則會
拋出java.lang.ArrayIndexOutOfBoundsException
使用for-each循環遍歷數組時,無須獲得數組的長度,也無需索引來訪問數組元素,比較簡單。
但是使用for-each循環不能給數組元素賦值
public static void main(String[] args) { String[] fruits={"蘋果","香蕉","梨","桃子"}; for(String fruit:fruits){ fruit="水果"; //fruit只是個臨時變量,不是數組元素,給他賦值對數組元素沒有意義 } System.out.println(fruits[0]); }
輸出:
蘋果