arraylist添加元素有三种方式:add(e e)在末尾追加;add(int index, e e)在指定索引插入并后移后续元素;addall(collection

ArrayList 是 Java 中最常用的动态数组实现,添加和删除元素是它的核心操作。关键在于理解不同方法的用途、索引规则和性能影响。
添加元素:add() 方法的三种用法
ArrayList 提供了多个 add() 方法,适用于不同场景:
- add(E e):在末尾追加元素,最常用。例如:list.add("apple")
- add(int index, E e):在指定位置插入元素,原位置及后续元素自动后移。例如:list.add(1, "banana") 表示在索引 1 处插入,原索引 1 的元素变成索引 2
- addAll(Collection extends E> c):批量添加另一个集合的所有元素到末尾
- addAll(int index, Collection extends E> c):从指定索引开始批量插入
删除元素:remove() 方法要注意参数类型
ArrayList 的 remove() 有两个重载版本,容易混淆,必须看清楚传入的是 索引 还是 元素值:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- remove(int index):按索引删除,返回被删元素。例如:list.remove(0) 删除第一个元素
- remove(Object o):按值删除,只删第一个匹配项,返回 boolean(是否删除成功)。例如:list.remove("apple")
- 注意:remove(1) 是删索引为 1 的元素,不是删值为 1 的元素;若想删整数 1,应写 remove(Integer.valueOf(1))
其他实用操作与注意事项
除了基础增删,这些细节常被忽略但很关键:
- 添加或删除中间位置的元素(尤其大列表)会触发数组复制,时间复杂度为 O(n),频繁操作建议考虑 LinkedList(但注意随机访问变慢)
- 删除时若索引越界(IndexOutOfBoundsException;按值删除不会报错,找不到就返回 false
- 使用 clear() 可一次性清空所有元素;set(int index, E e) 可替换指定位置的元素(不改变大小)
- 多线程环境下 ArrayList 不安全,需额外同步,或改用 Collections.synchronizedList() / CopyOnWriteArrayList
简单示例代码片段
帮助快速建立直观印象:
ArrayList<string> list = new ArrayList();
list.add("a"); // [a]
list.add(0, "x"); // [x, a]
list.add("z"); // [x, a, z]
list.remove(1); // 删除索引1 → [x, z]
list.remove("x"); // 按值删除 → [z]
</string>Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










