我的问题是,使用Java有可能具有诸如树的集合。将树中的节点保存到变量中。这将是明智的对象地址(在我的理解中),这意味着使用本地变量更改节点中的数据也会更改集合中的数据?使用局部变量更改集合中的值
0
A
回答
0
局部变量保存到节点的引用,所以在局部变量确实会改变它所引用的对象的数据,在这种情况下不断变化的数据在你的树的节点也将被改变,因为它是同一个对象。
问候
亚历
0
答案是有点儿。假设你有变量var
,它的地址存储在集合things
中。然后,如果您执行以下操作:var = some_var
,集合中的数据不会更改。这是因为你正在覆盖赋值中var的地址。但是,如果你想以某种方式修改var,两者都会改变。发生这种情况是因为地址保持不变,因此您仍在写入正确的内存。例如var.field = some_data
将修改things[var].field
。
由于这个原因,将var
的副本加载到things
通常是一种很好的做法,通过这样做我们不会让他们意外连接。人们经常会在没有意识到的情况下将事情连接起来,然后修改变量而不知道集合也发生了变化。
相关问题
- 1. 如何更改内部类中局部变量的值?
- 2. 如何在不更改全局变量的情况下更改分配给全局值的局部变量?
- 3. 改变局部变量的值执行原始全局变量的值变化
- 4. 使用局部变量渲染集合时缺少模板
- 5. 更改全局javascript变量的值
- 6. 使用局部变量的
- 7. 使用函数更改全局变量
- 8. 全局变量JavaScript(更改值)
- 9. 更改全局变量值jQuery
- 10. 更改模型外部变量的值
- 11. 在ExpressionEngine中更改用户定义的全局变量值
- 12. 如何使用其他局部变量声明局部变量?
- 13. 改变multiprocesses的局部变量在python
- 14. 使用XSL分配从模板的局部变量全局变量的值
- 15. 使用javascript更改php变量的值
- 16. 使用Python创建全局变量,初始化后更改值
- 17. 使用全局变量tkinter动态更改标签值
- 18. 局部变量的值不用于
- 19. 使用C#中的Selenium Webdriver将局部变量信息赋予局部变量
- 20. 更改脚本块的父范围中的局部变量
- 21. 更改聚合物中的全局变量
- 22. 我可以更改坐在PHP函数中的局部变量的值吗?
- 23. 更改函数中函数的局部变量
- 24. 如何指示C#中的局部变量不会更改?
- 25. 在perl中整合全局散列中的局部变量
- 26. 使用循环更改变量值
- 27. JQuery变量使用旧值更改
- 28. 使用onchange更改变量值
- 29. 使用dplyr按组更改变量值
- 30. 如何使用参数更改函数中的全局变量
为什么你不测试它?但是,是的,如果您有两个对同一对象的引用,则使用一个引用更改唯一对象的状态会改变它,而另一个引用仍将指向相同的已修改对象。 –