gpt4 book ai didi

java - 为什么即使我没有更改或设置任何值,全局列表也会受到影响?

转载 作者:行者123 更新时间:2023-12-04 21:07:30 26 4
gpt4 key购买 nike

这是我的示例对象
对象名称:OBJ
对象属性:String name, int age

现在我有 2 个全局列表

List<OBJ> lstobj = new ArrayList<OBJ>;
List<OBJ> anotherlist = new ArrayList<OBJ>;

然后我像这样在两个列表中添加了一些记录

姓名:Ben 年龄:5
姓名:查尔斯年龄:6 岁
姓名:段位:7

现在我需要将 Charles 的年龄更改为“10”

所以首先我应该在列表中找到 Charles 并从列表中获取 obj

OBJ newobj = new OBJ;
for(OBJ obj : lstobj){
if(obj.getName.equals("Charles"){
newobj = obj;
}
}

现在我需要将检索到的对象的年龄设置为 10。

newobj.setAge(10);

此操作不仅会更改“lstobj”,还会更改“anotherlist”。如何在不影响两个全局列表的情况下设置检索到的对象?

最佳答案

列表存储对对象的引用。如果您将相同的引用粘贴到多个列表中,然后更改对象,它会在所有地方发生变化。

如果希望lstobjanotherlist的内容完全相互独立,就需要在其中插入不同的对象。这可能涉及制作对象的副本。

关于java - 为什么即使我没有更改或设置任何值,全局列表也会受到影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14497283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com