![](/img/trans.png)
[英]Strings are objects in Java, so why don't we use 'new' to create them?
[英]Java ArrayList: create a copy of array and use seperate from old, but don't create new objects
例如,我有一个ArrayList:
ArrayList<Animal> zoo = new ArrayList<Animal>();
// some code to add animals to zoo
我想创建这个old zoo
到new zoo
的副本,我可以使用remove / add ...处理这个新动物园。(当然,它不会影响到旧动物园)。 因此,我有一种方法:创建一个新的动物园,以克隆旧动物园中的每只动物(这意味着创建动物对象)。 因此,它也很慢。
我有另一种方法:为旧动物园的每只动物创建参考,然后复制到新动物园。 因此,新动物园只是提及了动物园的动物。 因此,每次我删除/添加...时,它只会删除对动物对象的引用。 不影响旧动物园,也不创建新对象。
但是,我不知道如何用Java做到这一点。 请教我。
谢谢 :)
这在Java中非常简单:
ArrayList<Animal> copy = new ArrayList<Animal>(zoo);
构造函数ArrayList<T>(Collection<? extends E> c)
会执行您作为参数提供的列表的浅表副本 ,这正是您要查找的语义。
只需尝试:
ArrayList<Animal> newZoo = new ArrayList<Animal>(oldZoo);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.