作為 Codegym 大學課程一部分的導師授課片段。報名參加完整課程。


“嗨,阿米戈!”

“嘿,艾莉!”

“今天,我將向您介紹一個有趣的新實體:數組。數組是一種數據類型,可以存儲多個值,而不僅僅是一個值。”

數組 - 1

“我們先打個比方。讓我們來比較一棟房子和一棟公寓樓。一棟普通的房子通常只有一個家庭居住,而一棟公寓樓卻分成許多公寓。要給住在一棟房子裡的家庭寄一封信,你需要註明房子的唯一地址。要給住在公寓樓的家庭寄信,需要寫公寓樓的唯一地址和公寓號。”

“到目前為止,一切似乎都很清楚。”

“數組變量就像一個公寓樓變量。您可以在其中存儲許多值,而不僅僅是一個值。這樣的變量有幾個公寓(元素),您可以使用公寓號(索引)來引用它們。要做到這一點,在數組變量名後面的方括號中指明要訪問的數組元素的索引。這很簡單。

“我希望如此,艾莉。”

“一個公寓樓變量(數組變量)可以包含任何類型的元素。你只需要寫' TypeName[] variable_name '而不是' TypeName variable_name '。”

這裡有些例子:

代碼 描述
String[] list = new String[5];
創建一個包含元素String的數組5
System.out.println(list[0]);
System.out.println(list[1]);
System.out.println(list[2]);
System.out.println(list[3]);
System.out.println(list[4]);
將顯示五個“ null ”值。

要訪問特定數組元素的值,請使用方括號和元素的索引。

int listCount = list.length;
listCount將被分配值 5,這是數組中元素的數量list。存儲數組的長度(元素數)。
list.length
list[1] = "Mom";
String s = list[1];
將對象賦值給數組元素時,需要在方括號中指明元素索引。
for (int i = 0; i < list.length; i++)
{
     System.out.println(list[i]);
}
在屏幕上顯示所有數組元素的值。

“多麼有趣!”

“數組變量需要額外的初始化。”

——?

“對於常規變量,您只需聲明它,然後為其分配各種值。對於數組,它有點複雜。”

“你必須首先創建一個容器來容納 N 個元素,然後你才能開始將值放入容器中。”

代碼 描述
String[] list = null;
數組list變量為null。它只能存儲對元素容器的引用。您必須單獨創建容器。
String[] list = new String[5];
為元素創建一個容器5並為變量分配一個引用list。這個容器有 5 個公寓(元素),編號為 0、1、2、3 和 4。
String[] list = new String[1];
為元素創建一個容器1並為變量分配一個引用list。要將一些東西放入這個容器中,我們會寫一些類似的東西list[0] = "Yo!";
String[] list = new String[0];
為元素創建一個容器0並為變量分配一個引用list。您不能在此容器中存儲任何內容。

“我明白了,現在越來越清楚了。”

“這裡有一些關於數組的基本事實:”

1)數組由許多元素組成。

2)要訪問某個元素,請指明其編號(索引)。

3)所有元素都屬於同一類型。

4)所有元素的初始值為null;對於基本類型的數組,初始值為 0、0.0(對於小數)或 false(對於布爾值)。它與不在數組中的未初始化變量完全相同。

5) String[] list 只是聲明了一個變量。您需要首先創建一個數組(容器),將一些東西放入其中,然後才使用它(參見下面的示例)。

6)我們在創建數組(容器)對象時,需要指明它的長度,或者說元素的個數。我們使用 new TypeName[n];

數組 - 2

這裡有些例子:

代碼 描述
String s;
String[] list;
s等於 null
list等於 null
list = new String[10];
int n = list.length;
變量list存儲對對象的引用——一個包含 10 個元素的字符串數組
n等於10
list = new String[0];
現在list包含一個0元素數組。數組存在,但不能存儲字符串。
list = null;
System.out.println(list[1]);
這將拋出異常(運行時錯誤)並且程序將異常終止:list包含一個空引用。
list = new String[10];
System.out.println(list[11]);
這將拋出異常(運行時錯誤):數組索引越界。

如果list包含 10 個元素,則有效索引為:0、1、2、3、4、5、6、7、8 和 9(總共 10 個索引)。