直接用set(int index, E element)方法替换指定索引处元素,需确保索引在[0, size()-1]范围内,否则抛出IndexOutOfBoundsException。

直接用 set(int index, E element) 方法就行,它会用新元素替换指定索引位置的旧元素。
确认索引有效再修改
ArrayList 的索引从 0 开始,最大有效索引是 size() - 1。如果传入越界的索引(比如负数或 ≥ size),会抛出 IndexOutOfBoundsException。
- 修改前建议先判断:
if (index >= 0 && index - 尤其在循环或用户输入场景下,不校验容易导致程序崩溃
set() 方法会返回被替换的旧元素
这个细节常被忽略:set() 不仅替换元素,还返回原来位置上的对象,可用于记录、比对或回滚。
- 例如:
String old = list.set(2, "newStr");——old就是原来索引 2 处的字符串 - 对引用类型来说,返回的是原引用,不是副本
和 get() + set() 配合做条件更新
有时需要“先查后改”,比如只在满足某个条件时才更新:
立即学习“Java免费学习笔记(深入)”;
if ("oldValue".equals(list.get(3))) { list.set(3, "newValue"); }- 注意:避免连续调用
get()和set()做相同索引操作,除非真需要旧值 - 对于频繁读写的场景,可考虑封装成工具方法提升可读性
不复杂但容易忽略细节,关键是索引安全和理解返回值用途。


















