【发布时间】:2015-04-25 10:43:52
【问题描述】:
我有一个关于使用LinkedList 和.get() 操作的问题。据我所知,Java 通过引用传递对象,所以如果我有一个名为A 的链表,并且我做了temp B = A.get(i),我会检索一个我可以修改的对象B,并且更改会反映在A.get(i) 中。
但是,如果对象 B 在其中(比如说另一个 LinkedList 对象),我没有得到正确的深层副本吗?在这个例子中,我必须为我的类“temp”创建一个复制构造函数。还是有更好的内置方法来做到这一点?
感谢您的帮助。
【问题讨论】:
-
据我所知,Java 通过引用传递对象。不。Java 根本不传递对象,更不用说通过引用了。
-
开始区分变量、值和对象。
-
@SotiriosDelimanolis 遗憾的是,这种教学方式很普遍。当然,你是对的。
-
回答您的问题 - 是的 LinkedList 不返回深拷贝。一般来说,Java 不会复制东西,而是传递值或地址供您参考。
标签: java