当前位置: 首页 > 面试题库 >

Java-如何克隆ArrayList并同时克隆其内容?

姜胤
2023-03-14
问题内容

如何克隆ArrayList Java并同时在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 ArrayList?,包括了如何复制或克隆Java ArrayList?的使用技巧和注意事项,需要的朋友参考一下  java.util.ArrayList类的 clone()方法返回此ArrayList实例的浅表副本(即,不复制元素本身)。使用此方法,可以将一个数组列表的内容复制到另一个数组列表。 示例 输出结果

  • 问题内容: 我有一个其中包含许多bufferedimages的对象,我想创建一个新对象,将所有bufferedimages复制到新对象中,但是这些新图像可能会更改,并且我不希望通过更改原始对象图像来更改新对象图像。 明白了吗? 这有可能做到吗,有人可以建议一个好方法吗?我曾经想到过getSubImage,但在某处阅读过,该子映像的任何更改都被重新关联回了父映像。 我只希望能够获得BufferedI

  • 我试图在RecyclerView使用的ArrayList中创建一个对象的克隆,我已经用Clonable扩展了我的实体,但是当我编辑克隆的对象时,甚至修改了原始对象。 什么将是正确的方式来克隆/复制一个对象在回收器视图? 实体: 实体变量: 活动: 然后,当一个RecyclerView项目被滑动时,将该位置传递到一个修改对话框,在该对话框中,我可以对该对象进行一些编辑。 编辑: 通过深入研究,我发现

  • 问题内容: 我一直在寻找一些讲解Java的教程,但没有获得任何良好的链接,无论如何,Stack Overflow变得越来越明显。 我想知道以下内容: 意味着我们可以通过实现接口来获得对象的克隆或副本。这样做的优点和缺点是什么? 如果对象是复合对象,则如何进行递归克隆? 问题答案: 你应该了解的第一件事-不要使用它。 正确地进行克隆非常困难,而且付出的努力是不值得的。 而不是使用其他一些选项,例如或

  • 问题内容: 有没有一种方法可以克隆的实例而无需将其字符串化并重新解析结果? 浅表副本是可以接受的。 问题答案: 使用构造函数和方法。

  • 主要内容:示例在某些情况下,您可能需要一个表的完整、精确副本,也即克隆表(复制表)。我们首先想到的是使用 CREATE TABLE 命令创建一张新表,然后使用 SELECT 命令从旧表中选取所有数据,并使用 INSERT 命令插入到新表中。但是这种做法可能达不到您的目的,因为副本必须包含相同的索引、约束、默认值等。 如果您使用 MySQL 数据库,可以借助 SHOW CREATE TABLE 命令,该命令用来展