如何不使用内置函数交换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
相关产品推荐
相关产品推荐

