arraylist在指定索引处插入元素使用add(int index, e element)方法,索引需满足0≤index≤size(),否则抛出indexoutofboundsexception,时间复杂度为o(n)。

Java 中 ArrayList 向指定位置添加元素,用的是 add(int index, E element) 方法。
指定索引处插入元素
这个方法会在列表的指定位置插入元素,原有位置及之后的元素自动后移一位。注意:索引必须在合法范围内(0 ≤ index ≤ size()),否则抛出 IndexOutOfBoundsException。
例如:
ArrayList<string> list = new ArrayList();
list.add("A");
list.add("C");
list.add(1, "B"); // 在索引1处插入"B"
// 结果:["A", "B", "C"]</string>
常见错误和注意事项
- 索引不能为负数,也不能大于当前列表长度(允许等于,即在末尾插入)
- 插入 null 元素是合法的(除非集合本身不允许 null)
- 该操作时间复杂度为 O(n),因为可能需要移动后续所有元素
- 多线程环境下非线程安全,需额外同步
和普通 add() 的区别
add(E element) 总是在末尾追加;而 add(int, E) 是在中间或开头插入。两者都是重载方法,调用时编译器根据参数类型自动区分。
比如:
list.add("X"); // 末尾添加
list.add(0, "X"); // 开头插入
实际使用小建议
- 如果频繁在头部或中间插入,考虑是否更适合用
LinkedList - 插入前可用
list.size()判断边界,避免异常 - 批量插入多个元素时,逐个调用
add(index, e)会导致多次位移,效率较低,可考虑先构建新列表再替换
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











