如何克隆ArrayList并在Java中也克隆其项目?

例如,我有:

ArrayList<Dog> dogs = getDogs();
ArrayList<Dog> clonedList = ....something to do with dogs....


我希望clonedList中的对象与狗列表中的对象不同。

最佳答案

您将需要迭代这些项目,然后逐个克隆它们,然后将克隆放入结果数组中。

public static List<Dog> cloneList(List<Dog> list) {
    List<Dog> clone = new ArrayList<Dog>(list.size());
    for (Dog item : list) clone.add(item.clone());
    return clone;
}


显然,要使它起作用,您将必须获取Dog类以实现Cloneable接口并重写clone()方法。

10-04 10:45
查看更多