數組對於每一門編程語言來講都是最重要的數據結構之一,當然不同的編程語言對數組的實現以及處理也不盡相同。
數組的概念:
把有限個相同類型元素變量放在一個整體,這個整體就叫做數組。數組中的每一個元素被稱為數組元素,通常可以通過數組元素的索引(也叫下標,可以理解為一種編號,從0開始)來訪問數組元素,包括數組元素的賦值(set)和取值(get)。
在Java中數組屬於引用類型,也是一種類型,Java中的數組要求所有的數組元素必須具有相同的數據類型,因此在一個數組中,數組元素的類型是唯一的,一個數組只能存儲一種數據類型的數據,而不能存儲多種數據類型的數據。
一旦數組初始化完成,數組內存所占的空間也就被固定,因此數組的長度是不可改變的。即使把某個數組中所有元素的數據全部清空,其所占的空間仍然會被保留,該空間依然屬於該數組,數組長度依然不會改變。數組既可以存放基本數據類型(如:int、char、boolean),也可以存放引用數據類型(如:String),只要數組的數組元素具有相同的類型就可以。
數組在聲明時必須要對其初始化。
數組的聲明:
首先必須聲明數組的類型,再聲明數組變量(也就是名字),才能在程序中使用它。
語法:
(數組的聲明一般分為以下兩種方法)
類型 變量名[]; //這種風格來自C/C++語言,但不常用,不是首選方法,意思是聲明一個某某類型,叫什么的數組 類型[] 變量名; //這種風格是Java的風格,常用,是首選方法,意思是聲明一個某某類型的數組,叫什么
(注意:聲明了一個數組,僅僅只是聲明,只是有這么一個名稱而已,但是里面沒有任何數據,因為沒有初始化,所以Java會報錯)
初始化:
Java中聲明了數組必須要對其初始化才可以使用。初始化也就是為數組的數組元素在內存中分配內存空間,並為每個元素賦初始值。
數組的初始化分以下兩種:
①靜態初始化:
靜態初始化指在聲明數組時就為數組元素分配空間並賦值。
語法:
dataType[] arrayName = new dataType[]{value1,value2,...,valuen}; //實際寫法 dataType[] arrayName = {value1,value2,...,valuen}; //簡化寫法,一般常用
如:
int[] a = new int[]{1,5,7,8,11}; //實際寫法 int[] a = {1,5,7,8,11}; //簡化寫法,一般常用
②動態初始化:
動態初始化指數組定義與數組分配空間與賦值的操作分開進行,動態初始化只指定數組的長度,由系統為每個數組元素指定初始值。
語法:
dataType[] a = new dataType[arraySize]; //常用寫法 dataTypr[] b; b = new dataType[arraySize]; //不常用寫法
如:
int[] a = new int[5]; //常用寫法,聲明該數組長度為5 int[] b; b = new int[5]; //不常用寫法,實際含義只是將以上步驟拆分了而已
初始值:
以下是系統為數組元素分配的默認初始值:
1.數值型(byte、short、int、long):值為0。
2.浮點型(float、double):值為0.0。
3.字符型(char):值為\u0000(即空格)。
4.布爾型(boolean):值為false。
5.引用類型(類、接口、如:String字符串):值為null。