在 Java 中,ArrayList 是一個非常常用的類,它提供了比數組更加靈活的數據結構,也是我們在 Java 編程中使用最多的集合類之一。本文將詳細介紹 Java ArrayList 的用法,幫助讀者更深入地了解和掌握它。
一、ArrayList 用法
Java ArrayList 是一個可以動態增長和收縮的數組,這意味着您無需在使用前指定其容量。因此,ArrayList 可以自動處理數組容量的擴展。這使其成為向集合中添加元素的首選方法之一。
下面是一些 ArrayList 的用例:
ArrayList list = new ArrayList(); list.add("hello"); list.add("world"); list.add("!"); System.out.println(list);
該代碼將創建一個 ArrayList 的實例,並添加三個字符串元素。在添加完成後,使用 System.out.println() 函數將 ArrayList 的所有元素打印出來。此時,輸出結果為:
["hello", "world", "!"]
如果你想將 ArrayList 字符串轉成數組,可以使用toArray() 方法實現:
String[] array = list.toArray(new String[0]);
二、C 中 ArrayList 的用法
在 C 中沒有 ArrayList 這樣一個官方類,但也可以使用 C 預處理器宏(參考 stdarg.h 頭文件中的實現)。其中,我們使用了一些簡單的類型定義,以便使相關的代碼更容易閱讀。
下面是一個基於 C 的 ArrayList 的簡單實現:
#include #include typedef struct { void* content; /*指向數組數據的指針*/ size_t size; /*當前數組尺寸*/ size_t length; /*當前已使用的尺寸*/ size_t contentSize; /*數組元素的每個元素大小*/ } ArrayList; bool ArrayList_init(ArrayList * list, size_t contentSize){ list->contentSize = contentSize; list->size = 4; list->length = 0; list->content = calloc(list->size, contentSize); return list->content != NULL; } void ArrayList_destroy(ArrayList * list){ free(list->content); list->content = NULL; } bool ArrayList_add(ArrayList * list, void * element){ if(list->length >= list->size){ list->size += 4; void * newContent = realloc(list->content, list->size * list->contentSize); if (newContent == NULL) return false; list->content = newContent; } void* pre = (char*)list->content + list->length * list->contentSize; memcpy(pre, element, list->contentSize); list->length++; return true; } void * ArrayList_get(ArrayList * list, size_t index){ if (index >= list->length) { return NULL; } char *ptr = list->content; ptr += index * list->contentSize; return (void *) ptr; }
該代碼可以創建一個 ArrayList 結構體,並提供了 add 和 get 方法來向列表中添加和檢索元素。
三、ArrayList 的所有方法
Java 的 ArrayList 有許多方法,包括:
1. add(Object o) 方法:向列表的尾部添加元素。
2. add(int index, Object o) 方法:在指定的 index 處將元素插入列表,並移動其餘的元素以填充空間。
3. clear() 方法:移除列表中的所有元素。
4. contains(Object o) 方法:如果列表包含指定的元素,則返回 true。
5. get(int index) 方法:返回列表中指定位置的元素。
6. remove(Object o) 方法:從列表中移除指定的元素。
7. size() 方法:返回列表中元素的數量。
下面是一個簡單的演示代碼:
import java.util.ArrayList; public class ExampleArrayList { public static void main(String[] args) { ArrayList items = new ArrayList(); // 向 ArrayList 添加元素 items.add("A"); items.add("B"); items.add("C"); items.add("D"); items.add("E"); items.add("F"); // 從 ArrayList 檢索元素 System.out.println("第三個元素:" + items.get(2)); // 遍歷 ArrayList for (String item : items) { System.out.println(item); } // 從 ArrayList 移除元素 items.remove("B"); items.remove(2); // ArrayList 大小 System.out.println("ArrayList 大小:" + items.size()); // 遍歷 ArrayList(新列表大小) for (String item : items) { System.out.println(item); } } }
輸出結果如下:
第三個元素:C A B C D E F ArrayList 大小:4 A C E F
四、ArrayList 中 set 用法
set 方法允許更改 ArrayList 中指定位置的元素。
以下是演示這種情況的示例:
import java.util.ArrayList; public class ExampleArrayList { public static void main(String[] args) { ArrayList items = new ArrayList(); // 向 ArrayList 添加元素 items.add("A"); items.add("B"); items.add("C"); items.add("D"); items.add("E"); items.add("F"); // 從 ArrayList 檢索元素 System.out.println("第三個元素:" + items.get(2)); // 遍歷 ArrayList for (String item : items) { System.out.println(item); } // 更改 ArrayList 中的元素 items.set(2, "New C"); // ArrayList 大小 System.out.println("ArrayList 大小:" + items.size()); // 遍歷 ArrayList(新列表大小) for (String item : items) { System.out.println(item); } } }
輸出結果如下:
第三個元素:C A B C D E F ArrayList 大小:6 A B New C D E F
五、ArrayList 類的方法選取
在 Java 中,ArrayList 類還有許多有用的方法,選擇一個子集是很困難的。在這裡,我們僅介紹四個常用的方法:
1. addAll(Collection c) 方法:向列表尾部添加指定集合中的所有元素。
2. clone() 方法:創建並返回此 ArrayList 的一份淺表副本。
3. isEmpty():如果 ArrayList 中沒有元素,則返回 true。
4. indexOf(Object o):返回列表中指定元素的第一次出現的索引。
下面是一些演示代碼:
import java.util.ArrayList; import java.util.Arrays; public class ExampleArrayList { public static void main(String[] args) { ArrayList numbers = new ArrayList(); // 向 ArrayList 添加元素 numbers.add(2); numbers.add(4); numbers.add(6); numbers.add(8); System.out.println("原始 ArrayList:" + numbers); // 向 ArrayList 添加另一個集合中的所有元素 numbers.addAll(Arrays.asList(1, 3, 5, 7)); System.out.println("修改後的 ArrayList:" + numbers); // 列表的淺表副本 ArrayList copyOfNumbers = (ArrayList) numbers.clone(); System.out.println("淺表複製 ArrayList " + copyOfNumbers); // 列表是否為空? System.out.println("ArrayList 是否為空?" + numbers.isEmpty()); // 元素第一次出現的位置 System.out.println("數字 5的索引:" + numbers.indexOf(5)); } }
輸出結果如下:
原始 ArrayList:[2, 4, 6, 8] 修改後的 ArrayList:[2, 4, 6, 8, 1, 3, 5, 7] 淺表複製 ArrayList [2, 4, 6, 8, 1, 3, 5, 7] ArrayList 是否為空?false 數字 5的索引:6
結束語
在本文中,我們已經介紹了 Java 的 ArrayList 類的一些重要用法。ArrayList 是一個精巧的數據結構,它可以幫助我們動態存儲和操作數據。我們希望在您使用 Java 開發時,您會在 ArrayList 中得到更多的好比。
原創文章,作者:LYFH,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/140703.html