Java ArrayList:動態集合的大門

介紹

你好,未來的Java愛好者!今天,我們要深入探討Java中最有用且多功能的工具之一:ArrayList。想像一下,你正在籌備一場派對,但你不知道會有多少朋友出席。你可以設置固定數量的椅子,但萬一更多人來怎麼辦?或者更糟,萬一一半的椅子都空著?這就是ArrayList在編程世界中的用途——它就像是一個神奇的賓客清單,可以根據需要擴大或縮小!

Java - 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時,你有三個選項:

  1. 創建一個空的ArrayList:

    ArrayList<String> friendsList = new ArrayList<>();
  2. 創建具有初始容量的ArrayList:

    ArrayList<Integer> numbers = new ArrayList<>(20);
  3. 從另一個集合創建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() + " 本書。");
}
}

讓我們來解釋一下:

  1. 我們首先創建一個名為bookList的ArrayList來存儲字符串對象(書籍標題)。
  2. 我們使用add()方法添加三本書。
  3. 我們使用System.out.println()打印初始列表。在這裡,ArrayList的toString()方法會自動被調用。
  4. 我們在索引1(第二個位置)使用add(int index, E element)添加"Pride and Prejudice"。
  5. 我們使用remove()方法刪除"1984"。
  6. 我們使用contains()檢查"The Great Gatsby"是否在我們的列表中。
  7. 最後,我們使用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