在 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/n/140703.html