Java集合如何节省元素(浅或深)
在Java集合(数组,linkedlist,set)中,当添加对象时,是否保存参考的副本或将整个对象复制到集合中。如果我更改原始对象,它会影响集合的对象吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在Java集合(数组,linkedlist,set)中,当添加对象时,是否保存参考的副本或将整个对象复制到集合中。如果我更改原始对象,它会影响集合的对象吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
它保存了参考。它不会复制对象。
可以从对于
collection.add
方法:请注意,该集合表示该集合将包含指定元素的指定元素...而不是指定元素的副本。
是的。它们是相同的对象。
It saves a reference. It does not copy the object.
This can be inferred from the javadoc for the
Collection.add
method:Notice that it says that the collection will contain the specified element ... not a copy of the specified element.
Yes. They are the same object.
是的,如果更改原始对象,它确实会更改集合中的对象。
您可以在此处阅读一个类似的问题,该问题谈论Java是通过参考: java”是“通过参考”还是“通过逐个价值”?
Yes, if you change the original object it does change the object inside the Collection.
You can read a similar question here which talks about java being a pass by reference: Is Java "pass-by-reference" or "pass-by-value"?