使用 set(int index, E element) 方法可修改 ArrayList 指定位置元素,它用新元素替换原索引处元素并返回旧元素,要求索引合法(0 ≤ index
在 Java 中,修改
ArrayList中指定位置的元素,用set(int index, E element)方法即可。它会用新元素替换原索引处的元素,并返回被替换的旧元素。使用 set() 方法修改元素
set()是ArrayList提供的专门用于更新指定位置元素的方法,要求索引合法(0 ≤ index ),否则抛出 <code>IndexOutOfBoundsException。
- 语法:
list.set(索引, 新元素);- 返回值:被替换的旧元素(可忽略或用于记录)
- 注意:不改变列表长度,也不移动其他元素
示例:
ArrayList<string> list = new ArrayList(Arrays.asList("a", "b", "c")); list.set(1, "B"); // 将索引 1 处的 "b" 替换为 "B" System.out.println(list); // [a, B, c]</string>修改前先检查索引是否有效
如果索引来自用户输入或计算结果,建议先校验,避免运行时异常:
Java注释规范Skills下载当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
- 用
list.size()获取当前长度- 确认
index >= 0 && index- 也可用 try-catch 捕获异常,但主动检查更清晰可控
安全写法示例:
int idx = 5; if (idx >= 0 && idx <h3>不能用 get() + 赋值来修改</h3> <p><code>get()</code> 只是读取元素,返回的是对象引用(对引用类型)或副本(对基本类型包装类),直接赋值不会影响列表本身:</p>
list.get(0) = "x";—— 编译错误,不能给方法调用结果赋值- 即使能赋值(如数组),
ArrayList的get()也不支持左值操作- 误以为修改了元素,实际什么都没发生
修改对象内部状态 vs 替换整个元素
如果
ArrayList存储的是自定义对象(如Person),有两种“修改”含义:
- 替换整个元素:用
set()换成另一个对象(推荐用于明确变更)- 修改对象属性:用
get()获取引用后调用其 setter,例如list.get(0).setName("Tom")(前提是对象可变且你有意如此)二者效果不同:前者改变列表结构中的引用;后者不改变引用,只改变堆中对象的状态。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南












