![](/img/trans.png)
[英]Copy one item from an ArrayList to another ArrayList Java 8
[英]Java clone item from one ArrayList into another?
我试图将元素从一个arrayList复制到另一个,我的应用程序开始出现错误,我认为问题是我在做浅表复制。
如何将一个阵列中的项目添加到另一个阵列中,进行深度复制/克隆?
到目前为止,这就是我复制元素的方式:
public ArrayList<ResolveInfo> myAppsArr = new ArrayList();
public ArrayList<ResolveInfo> allAppsArr = new ArrayList();
myAppsArr.add(allAppsArr.get(0));
如何将一个阵列中的项目添加到另一个阵列中,进行深度复制/克隆?
ResolveInfo有一个构造函数 ,可以为您创建新的重复对象:
myAppsArr.add(new ResolveInfo(allAppsArr.get(0)));
看来此构造函数仅是在API 17中添加的,您可以尝试使用通用克隆方法:
myAppsArr.add(allAppsArr.get(0).clone()); // No promises, I haven't tested this myself
或者,由于所有成员数据都是公共的,因此您可以创建一个手动创建新的ResolveInfo对象的方法。
对于所有android版本,最简单,最可靠的方法是将ResolveInfo序列化为宗地,并从该宗地创建新的ResolveInfo实例。
ResolveInfo r1 = new ResolveInfo();
Parcel p = Parcel.obtain();
r1.writeToParcel(p, 0);
ResolveInfo r2 = ResolveInfo.CREATOR.createFromParcel(p);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.