java中修改arraylist指定位置元素用set(int index, e element)方法,直接替换并返回旧值;索引需合法,不可越界;set()是替换,add()是插入;可结合get()、循环实现条件更新。

在 Java 中,修改 ArrayList 指定位置的元素,用的是 set(int index, E element) 方法。
使用 set() 方法直接替换
这是最常用、最直接的方式。它会把原位置上的元素替换成新元素,并返回被替换的旧元素(方便需要时做记录或判断)。
- 索引必须合法:0 ≤ index < list.size(),否则抛出
IndexOutOfBoundsException - 不能传入
null值(除非泛型允许,比如ArrayList<string></string>可以存null) - 示例:
ArrayList<string> list = new ArrayList(Arrays.asList("a", "b", "c"));
list.set(1, "bb"); // 把索引1处的"b"换成"bb"
System.out.println(list); // [a, bb, c]</string>先 get 再 set(适合需要原值参与逻辑时)
如果修改前需要读取当前值做判断或计算,可以先 get() 再 set(),避免重复查索引。
- 例如:把数字列表中某个位置的值翻倍
- 示例:
ArrayList<integer> nums = new ArrayList(Arrays.asList(10, 20, 30)); int idx = 2; int oldValue = nums.get(idx); // 30 nums.set(idx, oldValue * 2); // 设为60 System.out.println(nums); // [10, 20, 60]</integer>
注意 set() 和 add() 的区别
初学者容易混淆:set() 是替换,add(int index, E element) 是插入(会把原位置及之后元素后移)。
-
list.set(1, "x")→ 改第2个元素,长度不变 -
list.add(1, "x")→ 在第2个位置插入"x",原第2个变成第3个,长度+1
结合循环批量修改(按条件更新)
如果要根据内容而非固定索引修改,可遍历并配合 set():
ArrayList<string> list = new ArrayList(Arrays.asList("apple", "banana", "cherry"));
for (int i = 0; i </string>Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











