arraylist 用 set(int index, e element) 替换指定索引元素,返回被替换的旧元素;索引需满足 0 ≤ index
Java 中 ArrayList 替换指定索引位置的元素,用 set(int index, E element) 方法即可。它会用新元素覆盖原位置的值,并返回被替换的旧元素。
使用 set() 方法直接替换
这是最常用、最直接的方式。注意:索引必须在合法范围内(0 ≤ index ),否则抛出
IndexOutOfBoundsException。
- 调用格式:
list.set(索引, 新元素)- 返回值是原位置的元素,可用于记录或判断
- 不改变列表长度,也不触发扩容或缩容
示例:
ArrayList<string> list = new ArrayList(Arrays.asList("a", "b", "c")); String old = list.set(1, "bb"); // 把索引1处的"b"换成"bb" System.out.println(list); // [a, bb, c] System.out.println(old); // b</string>替换前先检查索引是否有效
如果索引来自用户输入或外部计算,建议先校验,避免运行时异常。
- 用
list.size()判断边界- 负数索引非法;索引等于 size() 也不行(那是添加位置,不是替换)
安全写法示例:
int idx = 5; if (idx >= 0 && idx <h3>和 add()、remove() 的区别要分清</h3> <p>别把 <code>set()</code> 和其它操作混淆:</p>
add(index, element)是插入,会使后续元素后移,列表变长remove(index)是删除,会使后续元素前移,列表变短set(index, element)是纯覆盖,长度和结构都不变泛型类型需匹配
如果 ArrayList 声明为
ArrayList<integer></integer>,就不能用set(0, "hello"),编译会报错。Java 泛型在编译期就做类型检查,确保安全。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南












