更新時間:2022-10-18 來源:黑馬程序員 瀏覽量:
假如現(xiàn)在需要統(tǒng)計某公司員工的工資情況,例如,計算員工平均工資、最高工資等。假設(shè)該公司有50名員工,用前面所學(xué)的知識,程序首先需要聲明50個變量分別存儲每位員工的工資,這樣做會比較麻煩。在Java中,可以使用一個數(shù)組存儲這50名員工的工資。數(shù)組,是指一組類型相同的數(shù)據(jù)的集合,數(shù)組中的每個數(shù)據(jù)稱為元素。數(shù)組可以存放任意類型的元素,但同一個數(shù)組里存放的元素必須類型一致。數(shù)組有一維數(shù)組和多維數(shù)組之分,下面展開說下數(shù)組的定義。
在Java中,聲明數(shù)組的方式有以下兩種。
第一種方式:
數(shù)組類型[] 數(shù)組名 = null;
第二種方式:
數(shù)據(jù)類型[]數(shù)組名; 數(shù)組名 = new數(shù)據(jù)類型[長度];
這兩種語法本身沒有任何區(qū)別,下面以第二種方式聲明一個數(shù)組,如下所示:
int[] x; // 聲明一個int[]類型的變量 x = new int[100]; // 為數(shù)組x分配100個元素空間
上述語句就相當(dāng)于在內(nèi)存中定義了100個int類型的變量,第一個變量的名稱為x[0],第二個變量的名稱為x[1],依次類推,第100個變量的名稱為x[99],這些變量的初始值都是0。
第一行代碼聲明了一個變量x,該變量的類型為int[],即聲明了一個int類型的數(shù)組。變量x會占用一塊內(nèi)存單元,它沒有被分配初始值。變量x的內(nèi)存狀態(tài)如圖2-38所示。
第二行代碼x = new int[100];創(chuàng)建了一個數(shù)組,將數(shù)組的地址賦值給變量x。在程序運行期間可以使用變量x引用數(shù)組,這時變量x在內(nèi)存中的狀態(tài)會發(fā)生變化,如圖2-39所示。
圖2-39中描述了變量x引用數(shù)組的情況。該數(shù)組中有100個元素,初始值都為0。數(shù)組中的每個元素都有一個索引(也可稱為角標(biāo)),可以通過x[0],x[1],...,x[98],x[99]的形式訪問數(shù)組中的元素。需要注意的是,數(shù)組中最小的索引是0,最大的索引是“數(shù)組的長度-1”。在Java中,為了便于獲得數(shù)組的長度,提供了一個length屬性,在程序中可以通過“數(shù)組名.length”的方式獲得數(shù)組的長度,即元素的個數(shù)。
圖2-38 變量x的內(nèi)存狀態(tài)
圖2-39 變量x在內(nèi)存中的狀態(tài)變化