我的問題是,使用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. 更改全局變量的值,C
- 6. 更改全局javascript變量的值
- 7. 更改lua中的局部變量w /全局函數
- 8. 使用局部變量的
- 9. 使用函數更改全局變量
- 10. 更改函數內部的全局變量值
- 11. 如何更改函數內部全局變量的值
- 12. 蟒閉合局部變量
- 13. 全局變量JavaScript(更改值)
- 14. 更改全局變量值jQuery
- 15. 更改模型外部變量的值
- 16. 在ExpressionEngine中更改用戶定義的全局變量值
- 17. 如何使用其他局部變量聲明局部變量?
- 18. 改變multiprocesses的局部變量在python
- 19. 使用javascript更改java變量的值?
- 20. 使用javascript更改php變量的值
- 21. 使用XSL分配從模板的局部變量全局變量的值
- 22. 得到局部變量值類變量
- 23. 使用Python創建全局變量,初始化後更改值
- 24. 使用全局變量tkinter動態更改標籤值
- 25. 在python中更改函數或方法中的局部變量
- 26. 局部變量的值不用於
- 27. 局部變量的值不用於
- 28. 更改全局變量
- 29. 使用C#中的Selenium Webdriver將局部變量信息賦予局部變量
- 30. 更改腳本塊的父範圍中的局部變量
爲什麼你不測試它?但是,是的,如果您有兩個對同一對象的引用,則使用一個引用更改唯一對象的狀態會改變它,而另一個引用仍將指向相同的已修改對象。 –