Java中ArrayList的常用函数
以下是 ArrayList
的一些常用方法和其用法:
添加元素
add(E element)
:在列表末尾添加给定的元素。add(int index, E element)
:将给定的元素插入到指定位置的列表中。
访问元素
get(int index)
:返回列表中指定位置的元素。
更新元素
set(int index, E element)
:用指定的元素替换列表中指定位置的元素。
删除元素
remove(int index)
:移除列表中指定位置的元素,同时返回被删除的元素。remove(Object o)
:从列表中移除指定元素的第一次出现。
列表大小相关
size()
:返回列表中的元素数。isEmpty()
:如果列表中没有元素,则返回true
。
搜索
indexOf(Object o)
:返回元素第一次出现在列表中的索引;如果列表不包含此元素,则返回-1
。contains(Object o)
:如果列表包含指定元素,则返回true
。
遍历
iterator()
:返回此列表元素的迭代器。
状态和条件检查
clear()
:移除列表中所有元素。isEmpty()
:判断列表是否为空。
批量操作
addAll(Collection<? extends E> c)
:将指定 collection 中的所有元素都添加到列表的尾部。removeAll(Collection<?> c)
:从列表中移除指定 collection 中包含的其所有元素。
拷贝
clone()
:返回ArrayList
的浅表副本。 (Object.clone()
不是List
接口的一部分,但ArrayList
实现了Cloneable
接口。)
转换为数组
toArray()
:返回一个包含列表中所有元素的数组。toArray(T[] a)
:返回一个包含列表中所有元素的数组;返回数组的运行时类型是指定数组的类型。
排序
sort(Comparator<? super E> c)
:根据提供的Comparator
按升序对列表进行排序。
保留(交集)
retainAll(Collection<?> c)
:仅保持列表中那些也包含在指定 collection 的元素,移除非交集部分的元素。
随机排序
Collections.shuffle(List<?> list)
:虽不是ArrayList的方法,但通常与 ArrayList 一起使用,用于对列表进行随机排序。
示例代码
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
// 创建 ArrayList
ArrayList<String> fruits = new ArrayList<>();
// 添加元素
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 访问元素
System.out.println("Get element at index 1: " + fruits.get(1));
// 更新元素
fruits.set(1, "Blueberry");
// 删除元素
fruits.remove("Apple");
// 列表大小
System.out.println("Number of elements in list: " + fruits.size());
// 检查是否包含某元素
if (fruits.contains("Cherry")) {
System.out.println("Cherry is in the list");
}
// 输出列表
System.out.println("Current list: " + fruits);
// 清空列表
fruits.clear();
// 检查列表是否为空
if (fruits.isEmpty()) {
System.out.println("The list is empty");
}
}
}
上述例子展示了如何使用 ArrayList
的基本函数创建和操作一个简单的字符串列表。调用这些方法时,Java 编译器会根据上下文语境来确定其正确性和一致性。在使用这些方法时,重要的是了解它们的语义和在运行时对于使用的内存和处理的影响。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通