Java ArrayList:動態集合的大門
介紹
你好,未來的Java愛好者!今天,我們要深入探討Java中最有用且多功能的工具之一:ArrayList。想像一下,你正在籌備一場派對,但你不知道會有多少朋友出席。你可以設置固定數量的椅子,但萬一更多人來怎麼辦?或者更糟,萬一一半的椅子都空著?這就是ArrayList在編程世界中的用途——它就像是一個神奇的賓客清單,可以根據需要擴大或縮小!
類聲明
讓我們從基礎開始。在Java中,ArrayList是java.util包的一部分。要使用它,你需要像這樣導入:
import java.util.ArrayList;
ArrayList類聲明如下:
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
如果這看起來令人生畏,別擔心——我們將一步一步地解釋!
這是什麼意思?
-
<E>
:這是一個型別參數。它意味著ArrayList可以保存任何類型的對象。這就像是在說,“這個ArrayList可以保存東西,我們稍後會指定是什麼類型的東西。” -
extends AbstractList<E>
:ArrayList是基於另一個名為AbstractList的類。 -
implements List<E>, RandomAccess, Cloneable, Serializable
:這些是ArrayList實現的接口,賦予它某些功能。
類構造函數
當你創建一個ArrayList時,你有三個選項:
-
創建一個空的ArrayList:
ArrayList<String> friendsList = new ArrayList<>();
-
創建具有初始容量的ArrayList:
ArrayList<Integer> numbers = new ArrayList<>(20);
-
從另一個集合創建ArrayList:
ArrayList<Double> scores = new ArrayList<>(existingList);
在第一個例子中,想像你正在開始一個新的朋友列表。在第二個中,你正在準備一個20個數字的列表。第三個則是像複製現有的賓客清單來開始一個新的。
類方法
ArrayList帶有一滿工具箱的有用方法。讓我們看看一些最常見的方法:
方法 | 描述 |
---|---|
add(E element) | 將元素添加到列表的末尾 |
add(int index, E element) | 在指定位置添加元素 |
get(int index) | 返回指定位置上的元素 |
set(int index, E element) | 替換指定位置上的元素 |
remove(int index) | 刪除指定位置上的元素 |
size() | 返回列表中的元素數量 |
clear() | 從列表中刪除所有元素 |
contains(Object o) | 如果列表包含指定的元素,則返回true |
這些方法就像不同的派對技巧——添加賓客、檢查誰在場、或者禮貌地要求某人離開!
繼承的方法
ArrayList還從其父類和接口繼承了方法。一些值得注意的方法包括:
- 從AbstractList:iterator(), listIterator()
- 從AbstractCollection:toString(), isEmpty()
- 從Object:clone(), equals(), hashCode()
將這些視為ArrayList附帶的額外功能!
對字符串ArrayList添加和刪除元素的示例
讓我們將知識應用於現實世界的示例。我們將創建一個ArrayList來管理閱讀列表:
import java.util.ArrayList;
public class ReadingList {
public static void main(String[] args) {
// 創建一個ArrayList以存儲書籍標題
ArrayList<String> bookList = new ArrayList<>();
// 將書籍添加到列表中
bookList.add("To Kill a Mockingbird");
bookList.add("1984");
bookList.add("The Great Gatsby");
System.out.println("初始閱讀列表: " + bookList);
// 在特定位置添加一本書
bookList.add(1, "Pride and Prejudice");
System.out.println("添加新書後: " + bookList);
// 刪除一本書
bookList.remove("1984");
System.out.println("刪除一本書後: " + bookList);
// 檢查書是否在列表中
String searchBook = "The Great Gatsby";
if (bookList.contains(searchBook)) {
System.out.println(searchBook + " 在你的閱讀列表中!");
} else {
System.out.println(searchBook + " 不在你的閱讀列表中。");
}
// 獲取列表的大小
System.out.println("你的閱讀列表中有 " + bookList.size() + " 本書。");
}
}
讓我們來解釋一下:
- 我們首先創建一個名為
bookList
的ArrayList來存儲字符串對象(書籍標題)。 - 我們使用
add()
方法添加三本書。 - 我們使用
System.out.println()
打印初始列表。在這裡,ArrayList的toString()
方法會自動被調用。 - 我們在索引1(第二個位置)使用
add(int index, E element)
添加"Pride and Prejudice"。 - 我們使用
remove()
方法刪除"1984"。 - 我們使用
contains()
檢查"The Great Gatsby"是否在我們的列表中。 - 最後,我們使用
size()
來獲取我們列表中的書籍數量。
輸出
當你運行這個程序時,你會看到以下這樣的東西:
初始閱讀列表: [To Kill a Mockingbird, 1984, The Great Gatsby]
添加新書後: [To Kill a Mockingbird, Pride and Prejudice, 1984, The Great Gatsby]
刪除一本書後: [To Kill a Mockingbird, Pride and Prejudice, The Great Gatsby]
The Great Gatsby 在你的閱讀列表中!
你的閱讀列表中有 3 本書。
就是這樣!你剛剛創建、操作並探討了一個ArrayList。這就像是你組織了一個書友會派對,添加了新的書名,刪除了已經閱讀的書,並跟蹤你的閱讀冒險。
請記住,ArrayList非常靈活。你可以使用它來管理任何東西的列表——數字、自定義對象,甚至是其他ArrayList!當你繼續你的Java之旅時,你會發現ArrayList成為你編程工具箱中最值得信賴的工具之一。
所以,繼續練習,繼續編碼,最重要的是,繼續享受Java的樂趣!誰知道?也許你的下一個大項目將會使用ArrayList來改變世界——一次變化一個動態列表!
Credits: Image by storyset