首页 > 解决方案 > 如何复制一个对象(在这种情况下是一个数组列表)然后只清除其中一个

问题描述

我有 2 个包含 ArrayList 的对象,我想执行以下步骤:

  1. 制作第一个对象的副本(因为其中有一些有用的数据)
  2. 清除第二个对象中的 ArrayList
  3. 将第一个对象的 ArrayList 中的 1 个元素添加到第二个对象的 ArrayList

    obj1.arraylist.add("f");
    obj2=obj1;
    obj2.arrarylist.clear;
    obj2.arraylist.add(obj1.arraylist.get(0));
    

我收到此错误:

W/System.err: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

标签: javaarraylist

解决方案


obj1 中有很多其他数据,所以构造函数不是一个选项。所以我使用了 clone() 并且它起作用了。

OBJ obj1=new OBJ();
 obj1.arraylist.add("f");
 .
 .
//add some data to obj1 like 
OBJ obj2=new OBJ();
obj2=(OBJ)obj1.clone();
obj2.arrarylist=new Arraylist<OBJ>();
obj2.arraylist.add(obj1.arraylist.get(0));

我只是添加一个克隆工具

  public class OBJ implements Cloneable{
 ...
 public Object clone()throws CloneNotSupportedException{
    return super.clone();
}}

推荐阅读