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