hqt*_*hqt 1 java reference object
例如,我有一个ArrayList:
ArrayList<Animal> zoo = new ArrayList<Animal>();
// some code to add animals to zoo
Run Code Online (Sandbox Code Playgroud)
我想创建的这个副本old zoo来new zoo,我可以使用删除/添加...来处理这个新的动物园.(当然,也不会影响到老动物园).所以,我有办法:创建一个新的动物园,克隆旧动物园中的每只动物(这意味着创建动物对象).所以,它太慢了.
我有另一种方式:创建旧动物园的每个动物的参考,并复制到新的动物园.所以,新动物园只是提到了动物园的动物.所以,每次我删除/添加,...它只是删除对动物对象的引用.没有影响旧动物园,并且没有创建新对象.
但是,我不知道如何用Java做到这一点.请教我.
谢谢 :)
这在Java中非常简单:
ArrayList<Animal> copy = new ArrayList<Animal>(zoo);
Run Code Online (Sandbox Code Playgroud)
构造函数ArrayList<T>(Collection<? extends E> c)执行您作为参数提供的列表的浅表副本,这正是您要查找的语义.
只需尝试:
ArrayList<Animal> newZoo = new ArrayList<Animal>(oldZoo);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |