在本教程中,我們將學(xué)習(xí)在Java中使用數(shù)組。我們將借助示例學(xué)習(xí)聲明,初始化和訪問數(shù)組元素。
數(shù)組是相似類型數(shù)據(jù)的集合。它是一個容器,用于保存單一類型的數(shù)據(jù)(值)。例如,您可以創(chuàng)建一個數(shù)組,它可以保存100個int類型的值。
在Java中,數(shù)組是一種基本構(gòu)造,它允許您存儲和訪問大量的常規(guī)值。
在Java中,這是我們?nèi)绾温暶鲾?shù)組的方法。
dataType[] arrayName;
dataType - 它可以是基本數(shù)據(jù)類型,如int、char、double、byte等,也可以是Java對象
arrayName - 它是一個標(biāo)識符
讓我們舉個實例
double[] data;
這里,data是一個數(shù)組,可以保存double類型的值。
但是,可以容納多少個元素?
好問題!我們必須為數(shù)組分配內(nèi)存。內(nèi)存將定義數(shù)組可以容納的元素數(shù)。
data = new Double[10];
在這里,數(shù)組的大小是10。這意味著它可以容納10個元素(10個雙精度浮點類型值)。數(shù)組的大小也稱為數(shù)組的長度。
注意:一旦定義了數(shù)組的長度,就不能在程序中對其進(jìn)行更改。
讓我們再舉一個實例:
int[] age; age = new int[5];
這age是一個數(shù)組。它可以容納5個int類型的值。
在Java中,我們可以在一條語句中聲明和分配數(shù)組的內(nèi)存。例如,
int[] age = new int[5];
在Java中,數(shù)組中的每個元素都與一個數(shù)字相關(guān)聯(lián)。這個數(shù)字稱為數(shù)組索引。我們可以使用這些索引來訪問數(shù)組的元素。例如,
int[] age = new int[5];
在這里,我們有一個長度為5的數(shù)組。在圖中,我們可以看到每個元素都由一個數(shù)字(數(shù)組索引)組成。數(shù)組索引始終從0開始。
現(xiàn)在,我們可以使用索引號來訪問數(shù)組的元素。例如,要訪問數(shù)組的第一個元素,我們可以使用age[0],第二個元素使用age[1]訪問,依此類推。
注意:如果數(shù)組的長度是n,則數(shù)組的第一個元素將是arrayName[0],最后一個元素將是arrayName[n-1]。
如果我們沒有將任何值存儲到數(shù)組中,數(shù)組將單獨存儲一些默認(rèn)值(0表示int類型,false表示布爾類型)。例如,
class ArrayExample { public static void main(String[] args) { //創(chuàng)建一個長度為5的數(shù)組 int[] age = new int[5]; //使用索引號訪問數(shù)組的每個元素 System.out.println(age[0]); System.out.println(age[1]); System.out.println(age[2]); System.out.println(age[3]); System.out.println(age[4]); } }
輸出:
0 0 0 0 0
在上面的示例中,我們創(chuàng)建了一個名為age的數(shù)組。但是,我們沒有給數(shù)組賦值。因此,當(dāng)我們訪問數(shù)組的各個元素時,默認(rèn)值被打印到屏幕上。
在這里,我們分別訪問數(shù)組的元素。有一種更好的方法可以使用循環(huán)(通常為for循環(huán))訪問數(shù)組元素。例如,
class ArrayExample { public static void main(String[] args) { //創(chuàng)建一個長度為5的數(shù)組 int[] age = new int[5]; //使用for循環(huán)訪問元素 for (int i = 0; i < 5; ++i) { System.out.println(age[i]); } } }
輸出:
0 0 0 0 0
在Java中,我們可以在聲明期間初始化數(shù)組,也可以在以后根據(jù)需要在程序中初始化。
下面是如何在聲明期間初始化數(shù)組。
int[] age = {12, 4, 5, 2, 5};
此語句創(chuàng)建一個名為age的數(shù)組,并使用大括號中提供的值初始化它。
數(shù)組的長度由大括號內(nèi)用逗號分隔的值的數(shù)目決定。在我們的實例中,age的長度是5。
讓我們編寫一個簡單的程序來打印此數(shù)組的元素。
class ArrayExample { public static void main(String[] args) { //創(chuàng)建一個數(shù)組 int[] age = {12, 4, 5, 2, 5}; // 通過數(shù)組索引值訪問數(shù)組元素 for (int i = 0; i < 5; ++i) { System.out.println("元素索引 " + i +": " + age[i]); } } }
輸出:
元素索引 0: 12 元素索引 1: 4 元素索引 2: 5 元素索引 3: 2 元素索引 4: 5
如前所述,我們可以使用數(shù)字索引輕松訪問和更改數(shù)組的元素。例如,
class ArrayExample { public static void main(String[] args) { int[] age = new int[5]; //向第三個元素插入14 age[2] = 14; //將34插入第一個元素 age[0] = 34; for (int i = 0; i < 5; ++i) { System.out.println("元素的索引 " + i +": " + age[i]); } } }
輸出:
元素的索引 0: 34 元素的索引 1: 0 元素的索引 2: 14 元素的索引 3: 0 元素的索引 4: 0
下面的程序計算存儲在int類型數(shù)組中的值的總和和平均值。
class SumAverage { public static void main(String[] args) { int[] numbers = {2, -9, 0, 5, 12, -25, 22, 9, 8, 12}; int sum = 0; Double average; //用于每個循環(huán)訪問元素 for (int number: numbers) { sum += number; } int arrayLength = numbers.length; //將sum和數(shù)組長度改為double,因為平均值average是double average = ((double)sum / (double)arrayLength); System.out.println("Sum = " + sum); System.out.println("Average = " + average); } }
輸出:
Sum = 36 Average = 3.6
在上面的示例中,我們創(chuàng)建了一個命名數(shù)字?jǐn)?shù)組。我們使用for…each循環(huán)訪問數(shù)組的每個元素。要了解for…each循環(huán)的更多信息,請訪問Java for ... each循環(huán)。
在循環(huán)中,我們計算每個元素的和。注意這一行,
int arrayLength = number.length;
在這里,我們使用數(shù)組的length屬性來計算數(shù)組的大小。然后,我們使用以下公式計算平均值:
average = ((double)sum / (double)arrayLength);
正如您看到的,我們正在將int值轉(zhuǎn)換為double。在Java中,這稱為類型轉(zhuǎn)換。要了解有關(guān)類型轉(zhuǎn)換的更多信息,請訪問Java 類型轉(zhuǎn)換。
我們現(xiàn)在提到的數(shù)組稱為一維數(shù)組。但是,我們可以在Java中聲明多維數(shù)組。
多維數(shù)組是數(shù)組的數(shù)組。也就是說,多維數(shù)組的每個元素都是數(shù)組本身。例如,
double[][] matrix = {{1.2, 4.3, 4.0}, {4.1, -1.1} };
這里,我們創(chuàng)建了一個多維數(shù)組matrix。它是一個二維數(shù)組。要了解更多信息,請訪問Java多維數(shù)組。