gpt4 book ai didi

java添加函数,添加后全部成为最后一组数据

转载 作者:行者123 更新时间:2023-12-01 19:01:14 24 4
gpt4 key购买 nike

依次只有3组数据1.length,当添加temp时,应该有三组不同的数据。但是,我添加后,即使有3组对象,其中的日期预计是最后一组日期,所有。我在 Debug模式下看到三个不同的数据,当前属性将覆盖每个周期中临时数据中的上一个数据。

我该如何修复它?

  String[] turn1 = idList.split(","); 
String[] turn2 = labelList.split(",");
Attribute attribute = new Attribute();
List<Attribute> Temp = new ArrayList<Attribute>();

for(int i=0;i<turn1.length;i++){
long getId;
getId = Integer.parseInt(turn1[i]);
attribute.setId(getId);
attribute.setLabel(turn2[i]);
Temp.add(attribute);
}
for(int i=0;i<3;i++)
System.out.println(Temp.get(i));

最佳答案

您在循环中更改同一个对象,当您将对象添加到列表时,这不会复制该对象,只是引用该对象,因此列表中的每个元素都将指向同一个原始对象。

您应该做的是在循环内新建Attribute

String[] turn1 = idList.split(","); 
String[] turn2 = labelList.split(",");
List<Attribute> Temp = new ArrayList<Attribute>();

for(int i=0;i<turn1.length;i++){
long getId;
Attribute attribute = new Attribute();
getId = Integer.parseInt(turn1[i]);
attribute.setId(getId);
attribute.setLabel(turn2[i]);
Temp.add(attribute);
}

for(int i=0;i<3;i++)
System.out.println(Temp.get(i));

关于java添加函数,添加后全部成为最后一组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12208224/

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