Java中如何将Integer对象从一个ArrayList移至另一个ArrayList?
Java中跨ArrayList移动Integer元素的实现方法
完全可以实现该需求,操作时需要注意ArrayList的remove方法重载带来的逻辑偏差,避免误走按索引删除的分支。
实现逻辑
- 初始化两个
ArrayList<Integer>实例,向源列表中填充初始的3个值为1的Integer对象 - 调用源列表的按对象删除方法,移除一个值为1的Integer元素,拿到被移除的元素引用
- 将移除的元素添加到目标列表中,即可得到预期结果
可运行代码示例
import java.util.ArrayList; public class MoveElementDemo { public static void main(String[] args) { ArrayList<Integer> myArrayList = new ArrayList<>(); ArrayList<Integer> myArrayList2 = new ArrayList<>(); // 初始化源列表元素为[1,1,1] myArrayList.add(1); myArrayList.add(1); myArrayList.add(1); // 显式构造Integer类型的待删值,避免触发按索引删除的重载方法 Integer target = 1; // remove方法返回布尔值,代表是否成功找到并移除了匹配元素 if (myArrayList.remove(target)) { myArrayList2.add(target); } // 结果校验 System.out.println(myArrayList); // 输出: [1, 1] System.out.println(myArrayList2); // 输出: [1] } }
注意事项
不要直接写
myArrayList.remove(1)完成删除操作:该写法传入的是int基本类型,会匹配参数为索引的remove(int index)重载方法,实际删除的是索引位置为1的元素,而非值为1的元素。当初始列表长度不足、元素顺序变化时,会触发索引越界异常或删错元素的问题。
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

