如何在克隆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()方法.

Java相关问答推荐

使用SaxonJ HE在收件箱中摆脱regex

如何在Java中对自定义协议进行主机名验证?

表格栏上的事件过滤器在PFA中不起作用

Android视图覆盖不阻止点击它后面的控件

无法在WebSocket onMessage中捕获错误

在Java中,如何按一个属性升序,然后按另一个属性降序对对象列表进行排序?

如何在Java记录中设置BigDecimal类型属性的精度?

带错误BER验证的itext8签名返回pdf

如何在JavaFX中处理多个按钮

支持MySQL 5.6的最新Hibernate版本

垃圾回收器是否真的删除超出作用域的对象?

当b是一个字节并且在Java中值为-1时,为什么b>;>;>;1总是等于-1?

向Java进程发送`kill-11`会引发NullPointerException吗?

Java.time.OffsetDateTime的SQL Server数据库列类型是什么?

用于Java的Visual Studio代码完成不起作用

JavaFX,GridPane:在GridPane的列中生成元素将保持所有列的宽度

在权限列表中找不到我的应用程序

Cucumber java-maven-示例表-未定义一步

字符串的Gzip压缩在java11和java17中给出了不同的结果

";home/runner/work/中没有文件...匹配到[**/pom.xml];Maven项目的构建过程中出现错误