1.ArrayList
類
今天我們將探索這個ArrayList
類。這是稱為集合的幾個類中的第一個。在 Java 中,集合是一個廣泛而有用的主題,以至於整個 CodeGym 任務都專門針對它們。
要完全理解集合的結構及其所有細微差別,您需要首先學習 OOP、接口、繼承、多線程基礎知識等等。
所以今天我們將熟悉最簡單的集合。但是在足夠深的層次上,您可以了解如何使用它以及它是如何工作的。現在,見見ArrayList
收藏。
背景故事
我將從一些背景開始。程序員真的不喜歡數組的一個方面:它們的大小不能改變這一事實。如果你需要在數組中存儲三個以上的元素,但只有一個空單元格怎麼辦?
解決數組空間限制的唯一方法是創建一個非常大的數組,以容納您可能需要存儲的所有元素。但這通常是在浪費內存。如果一個數組通常包含兩個或三個元素,但即使有很小的機會需要存儲 100 個元素,那麼就有必要創建一個容量可存儲 100 個的數組。
那麼程序員想出了什麼呢?他們寫了這個ArrayList
類,它做與類相同的工作Array
,但可以調整大小。
數組列表類
類名ArrayList
由兩個詞組成:Array + List。Array
是一個數組,List
是一個列表。
每個ArrayList
對像都包含一個普通的元素數組。當您從 中讀取元素時ArrayList
,該對象會從其內部數組中檢索它們。當您寫入元素時,它會將它們寫入內部數組。
ArrayList 類沒有數組的所有缺點。它知道如何:
- 存儲特定類型的元素
- 動態調整列表大小
- 將元素添加到列表的末尾
- 在列表的開頭或中間插入元素
- 從列表中的任何位置刪除元素
有關更多詳細信息,請參見下文:
2.創建ArrayList
對象
要創建一個ArrayList
對象,您需要編寫如下代碼:
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
其中ArrayList
是集合類型/類,TypeParameter
是集合中存儲的元素的類型ArrayList
,name
是變量的名稱ArrayList<TypeParameter>
。
該name
變量具有通用類型。它由兩種類型組成:首先表示集合的類型,然後用尖括號表示集合中存儲的元素的類型。
例子:
代碼 | 描述 |
---|---|
|
整數列表 |
|
字符串列表 |
|
實數列表 |
與數組不同,集合不能存儲原始類型,只能存儲引用類型。因此,如果您需要 s 的集合int
,請改用Integer
包裝類。
3.操作ArrayList
最初,新創建的列表的長度為零,因為它包含 0 個元素。如果向列表中添加一個元素,則其長度會增加 1。如果刪除添加的元素,則長度會減回零。
下表可以教你更多關於類的方法ArrayList
:
方法 | 描述 |
---|---|
|
將傳遞的元素添加到列表中 |
|
將元素添加到列表中的特定位置。 |
|
返回索引為的元素index |
|
分配value 給索引為的元素index |
|
移除索引為 的元素index 。返回刪除的元素。 |
|
刪除傳遞給方法的元素。如果有多個這樣的元素,第一個將被刪除。 |
|
清除列表,即從列表中刪除所有元素。 |
|
檢查列表是否包含value . |
|
檢查列表是否為空。換句話說,列表的長度是否為零。 |
|
返回列表的大小,即列表中元素的數量。 |
|
返回包含列表元素的數組。 您需要將數組傳遞給方法。 |
這些方法幾乎可以讓您對列表做任何您想做的事情:交換元素、添加元素和刪除元素。您可以使用單個命令清除列表,甚至可以將列表轉換為數組。
ArrayList
4.和的比較Array
我不認為我們可以避免比較ArrayList
和數組。
您只能對數組執行 4 個操作:
- 創建數組
- 通過索引獲取元素
- 通過索引設置元素
- 獲取數組的長度
以下是應用於數組和 的這些操作ArrayList
:
大批 | 數組列表 |
---|---|
|
|
|
|
|
|
|
|
讓我們比較一下 anArrayList
和 array 的工作方式。比如我們來實現這個任務:“從鍵盤讀取10個字符串,並以倒序顯示在屏幕上”
使用數組 | 使用數組列表 |
---|---|
|
|
這個比喻很清楚。對於數組,一切都以某種方式更短更清晰。但ArrayList
也不難:要獲取一個元素,我們使用get()
方法;改變一個元素,set()
方法;獲取列表的長度,size()
方法。
那麼為什麼程序員要使用ArrayList
類呢?
當然,重點是普通數組沒有的所有其他方法:
- 向列表中添加一個元素
- 在列表中間添加一個元素
- 在列表中查找一個元素
- 從列表中刪除元素