在 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-tw/n/140703.html
微信掃一掃
支付寶掃一掃