arraylist的get和set方法均要求索引在[0, size)范围内,越界时抛出indexoutofboundsexception。

Java 中 ArrayList 通过 get(int index) 获取元素,用 set(int index, E element) 修改指定索引处的元素。两者都要求索引在有效范围内(0 ≤ index ),否则抛出 <code>IndexOutOfBoundsException。
根据索引获取元素(get)
使用 get() 方法可快速访问指定位置的元素,时间复杂度为 O(1):
- 索引从 0 开始,最大合法索引是
list.size() - 1 - 若传入负数或超出范围的索引,会立即抛出异常
- 返回值类型与泛型一致,无需强制转换(如
ArrayList<string></string>返回String)
示例:ArrayList<string> list = new ArrayList(Arrays.asList("a", "b", "c"));<br>
String s = list.get(1); // 返回 "b"</string>
根据索引修改元素(set)
set() 会替换原位置的元素,并返回被替换的旧值:
- 不改变列表长度,仅更新内容
- 如果索引合法,原元素被新元素覆盖;旧元素作为返回值可被保存或忽略
- 同样严格检查索引边界,越界行为与
get()一致
示例:String old = list.set(0, "x"); // list 变为 ["x", "b", "c"],old 为 "a"
常见注意事项
实际使用中需注意几点:
- 调用前建议先判断
index >= 0 && index ,尤其在循环或用户输入场景下 -
set()不支持向末尾添加元素——想扩容请用add();若索引等于当前 size,set()仍会报错 - 多线程环境下,ArrayList 非线程安全,直接 get/set 可能引发并发问题,需额外同步
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











