gpt4 book ai didi

java - 将对象存储到列表中在 Java 中不起作用?

转载 作者:行者123 更新时间:2023-12-03 21:44:34 25 4
gpt4 key购买 nike

我在从列表中检索数据时遇到问题。这些值似乎永远不会被存储,或者对象被初始化?我创建了一个存储一些变量的类:

public class storage{
public int a = 0;
public int b = 0;
}

然后我创建了另一个类,用一些值填充 a 和 b,并将对象存储在列表中

public class anotherclass{
public List<storage> alldata = new ArrayList<storage>();

public void filldata(){
storage tmp = new storage();
for (int i = 1; i <= 10; i++){
tmp.a = i;
tmp.b = i;
alldata.add(tmp);
}
}
}

但是当我在我的主类中运行 filldata() 时,然后尝试从列表中获取对象 a 和 b 仍然设置为 0。

public static void main(String[] args){
anotherclass obj = new anotherclass();
obj.filldata()

for (int i = 0; i <= obj.alldata.size() - 1; i++){
System.out.println(obj.alldata.get(i).a)
System.out.println(obj.alldata.get(i).b)
//Outputs as all zeroes
}

}

这怎么可能?

最佳答案

尝试每次都创建对象。否则它使用相同的对象。所以只有它不会添加到您的列表中。

            storage tmp = null;
for (int i = 1; i <= 10; i++)
{
tmp = new storage();
tmp.a = i;
tmp.b = i;
alldata.add(tmp);
}

代替

            storage tmp = new storage();
for (int i = 1; i <= 10; i++)
{
tmp.a = i;
tmp.b = i;
alldata.add(tmp);
}

关于java - 将对象存储到列表中在 Java 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19309952/

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