15
|
Austin Hanson · 技术社区 · 16 年前 |
![]() |
1
21
是的,但没有克隆。在分配之前,两个列表中都有相同的对象。分配之后,在两个列表中有两个唯一的对象。 这样做:
目标在
|
![]() |
2
7
记住,当你向列表中添加一个对象时,你实际上只是在添加一个指向该对象的指针。在本例中,list1和list2都指向内存中的同一地址。
现在您已经将元素列表1分配给另一个指针。 你不是真的克隆对象本身,而是复制恰好指向同一对象的指针。如果需要证据,请执行以下操作:
|
![]() |
3
4
您不是在克隆对象;而是在两个列表中添加对同一对象的引用。但是,您的代码将其中一个列表中的引用替换为对另一个对象的引用,因此是的,这是预期的行为。 |
![]() |
4
4
您将用对新对象的引用替换一个列表中的引用。如果您改为更改该对象的属性,您将看到它在两个地方都发生了更改,因为引用将保持不变。 |
![]() |
5
3
是的,你不是在克隆这个物体。对象最初是通过引用添加到两个列表中的,然后在列表中为正在创建的新对象分配引用。 这绝对是预期的结果。 |
![]() |
6
1
当您传递要添加的“something”对象时,您是按值传递的(默认值),而不是按引用传递的 |
![]() |
7
0
是的,这是意料之中的。只添加对对象的引用。不是引用本身或副本。 |
![]() |
Giffyguy · 如何限制在构造向量后调用'resize()'? 3 年前 |
![]() |
vytaute · 返回表类型时Oracle函数中的类型错误 3 年前 |
![]() |
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 3 年前 |
![]() |
dev-chicco · Laravel系列寻找常见物品 3 年前 |
![]() |
Mitch · Laravel-雄辩的单品合并系列 7 年前 |
![]() |
Kieran · 为什么类X可以从集合继承<X> 7 年前 |
![]() |
John · 如何在不返回集合本身的情况下返回集合的数据? 7 年前 |
![]() |
Niklas Mertsch · 在泛型集合中实现移除(对象o) 7 年前 |