Java 中的 ArrayList:初學者入門 [2022]
已發表: 2022-11-22數組是每種編程語言中廣泛使用且必不可少的數據結構,但有一個缺點——它的大小是固定的。 讓我們看看 Java 中的 ArrayList 如何幫助解決這個問題。
數組可以有兩種類型:靜態數組或動態數組。 在 Java 等編程語言中,數組不能動態增加。 相反,數組的大小是在數組初始化期間聲明的。 但是,在許多情況下,這會導致許多問題。 為了解決這個問題,Java 中使用了 ArrayLists。 當元素被推送到 ArrayList 時,數組大小會自動增加。
在本文中,您將了解 Java 中的 ArrayLists。 您將了解 Array 和 ArrayList 之間的核心區別,並了解不同類型的 ArrayList 以及如何使用它們。
數組與 ArrayList
Array 和 ArrayList 之間的主要區別在於 Array 的大小是靜態的,而 ArrayList 的大小可以是動態的。 由於數組是固定的,因此遍歷數組的時間比動態數組少。
它們之間還有一些差異。
- 靜態數組可以是一維或多維的,但 ArrayList 只能是一維的。
- 數組是 Java 中可用的原始數據結構。 但是 ArrayList 是 Java 中集合框架 API 的一部分。 它建立在數組之上。
- 您可以聲明具有原始數據類型的數組。 不能在 ArrayList 中使用原始數據類型。 如果要使用原始數據類型,則需要使用該數據類型對應的包裝類。
Java 中 ArrayList 的類型
ArrayLists 可以是任何類型。 但是您需要傳遞相應的包裝器類,因為您不能在 ArrayList 中傳遞原始數據類型。
您可以通過傳遞包裝類(如Integer
或String
)來添加簡單的數據類型,如整數或字符串類型。
您還可以傳入複雜類型,如 ArrayLists 的 ArrayLists、hashmaps 等。
讓我們看一下在 ArrayList 中使用自定義類的示例。
import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32
在上面的代碼示例中,創建了一個User
類型的 ArrayList。 您將了解有關以下示例中使用的方法的更多信息。
在 Java 中創建一個 ArrayList
您已經了解了 Java 中 ArrayList 的基礎知識。 現在讓我們看一下 ArrayList 的語法,然後,我們還將了解如何在 Java 代碼中使用它。
ArrayList<Type> listName = new ArrayList<>();
上面的代碼片段顯示了定義 ArrayList 的語法。 Type
定義了 ArrayList 的類型。 例如,如果你想聲明一個整數數據類型的 ArrayList,你可以傳入<Integer>
。 請注意,您不能傳遞int
,因為它是原始數據類型。
您還需要導入java.util.ArrayList
以在您的程序中使用 ArrayList。 下面是聲明 ArrayList 的程序的基本示例:
import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []
在上面的代碼中,聲明了一個名為rainbow
的String
類型的 ArrayList。
要使用 ArrayList,有多種方法可用。 讓我們來看看幾種方法。
add
方法
ArrayList 類提供了各種方法來執行操作,例如添加或刪除元素、獲取值、在特定位置設置值、清除 ArrayList 等。
我們將看到的第一個方法是add
方法。
add
方法用於將單個項目添加到ArrayList
。 add
的語法如下所示。
arrayList.add(int i, Element)
現在讓我們了解語法。 第一個參數i
是一個可選參數,表示要添加的項目所在的索引位置。 第二個參數Element
是你要添加的元素。 現在讓我們來看一個例子。
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]
rainbow.add("Violet")
將一個元素添加到 ArrayList 的末尾。 並且rainbow.add(0, "Red")
將元素Red
添加到 ArrayList 的索引位置0
。 add()
方法在成功插入項目時返回true
。
get
方法
get
方法用於從 ArrayList 的指定位置獲取值。
arrayList.get(int i);
上面語法中顯示的i
是索引位置。 例如,如果你想從索引位置1
獲取項目,寫arrayList.get(1)
。

rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet
上面的代碼將從 ArrayList rainbow
返回Violet
。
set
方法
set
方法用於替換項目的值。 例如,如果您想要替換索引位置0
處的項目的值,您可以編寫rainbow.set(0, "Purple")
,假設您有一個名為rainbow
的 ArrayList。
set
方法的語法如下,
arrayList.set(int i, Element);
其中i
是索引位置, Element
是新元素的值。
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]
在上面的示例中,我們將兩個值添加到名為rainbow
的 ArrayList 中。 首先,添加元素Violet
,然後在 ArrayList 的位置0
處添加項Red
。 此時,完整的 ArrayList 看起來像這樣[Red, Violet]
。
現在,使用set
方法將索引位置1
處的元素替換為值Purple
。 替換值後,ArrayList 將如下所示[Red, Purple]
。
remove
方法
ArrayList remove
方法用於從 ArrayList 中刪除一個值。 您可以傳遞值或要刪除的值的索引位置。 remove
方法的語法如下所示:
arrayList.remove(Object value); // or arrayList.remove(int i);
讓我們舉個例子來更好地理解該方法。 假設您有一個名為rainbow
的 ArrayList,其值為[Violet, Red, Green]
。 現在,如果你想從 ArrayList 中移除Red
,你可以寫rainbow.remove("Red");
. 在rainbow
ArrayList 上調用此方法將從中刪除元素Red
。
// rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]
您還可以傳遞索引位置以刪除索引位置的項目。
//rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]
clear
的方法
顧名思義, clear
方法從 ArrayList 中刪除所有元素。 語法很簡單,並且不帶任何參數。
arraylist.clear()
讓我們看一個例子,
rainbow.clear(); System.out.println(rainbow); Output: []
clear
方法不返回任何值。 相反,它會清除給定 ArrayList 的值。
size
方法
size
方法返回給定 ArrayList 的大小。 此方法也不採用任何參數。 語法如下所示。
arrayList.size();
這裡的arrayList
就是ArrayList的名字。 讓我們藉助一個例子來理解size
方法。
ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3
此方法返回 ArrayList 大小的值。 在上面的示例中,ArrayList rainbow
由三個值組成,因此size
方法返回 3。
結論
本文討論了什麼是 ArrayList 以及它與 Array 的區別。 我們還看到瞭如何使用 ArrayList 類可用的各種方法來聲明和使用 ArrayList。
如果您想更深入地學習 Java,請查看這些在線 Java 課程。