You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用内置函数交换ArrayList元素?编译报错求助

问题解决:ArrayList元素交换编译失败的修复

你的代码编译失败的核心原因是:ArrayList.get(int index)是仅返回元素的方法,不能作为赋值语句的左值——Java不允许直接给方法的返回结果赋值,因为它不是可修改的变量引用。

要实现元素交换,你需要用ArrayList.set(int index, E element)方法来覆盖指定索引位置的元素,这是ArrayList修改指定位置元素的标准方式,不属于额外的第三方库函数。

修正后的代码如下:

ArrayList<Integer> al = new ArrayList<>();
al.add(45);
al.add(54);
al.add(67);
al.add(90);
// 交换索引1和索引2的元素
int temp = al.get(1);
al.set(1, al.get(2));
al.set(2, temp);

如果你的“不借助库函数”指的是完全不使用ArrayList自带的方法,那只能通过反射操作ArrayList的底层数组,但这种方式不推荐——它会破坏类的封装性,且不同JDK版本的ArrayList内部实现可能有差异,存在兼容性风险。

内容的提问来源于stack exchange,提问作者Aditya Dixit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:22:06