我正在尝试将元素从一个 arrayList 复制到另一个 arrayList 中,我的应用程序开始出现错误,我认为问题在于我正在执行浅复制。
如何将一个数组中的一项添加到另一个数组中进行深层复制/克隆?
这就是我到目前为止复制元素的方式:
public ArrayList<ResolveInfo> myAppsArr = new ArrayList();
public ArrayList<ResolveInfo> allAppsArr = new ArrayList();
myAppsArr.add(allAppsArr.get(0));
最佳答案
How can I add an item from one array into another doing a deep copy/clone?
ResolveInfo 有 constructor为您创建新的重复对象:
myAppsArr.add(new ResolveInfo(allAppsArr.get(0)));
看来这个构造函数只是在 API 17 中添加的,您可以尝试通用克隆方法:
myAppsArr.add(allAppsArr.get(0).clone()); // No promises, I haven't tested this myself
或者您可以创建一个方法来手动创建新的 ResolveInfo 对象,因为所有成员数据都是公共(public)的。
关于Java将一个ArrayList中的项克隆到另一个ArrayList中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14307647/