gpt4 book ai didi

java - 为什么我的 LinkedList 充满了相同的对象?

转载 作者:行者123 更新时间:2023-11-29 10:01:32 26 4
gpt4 key购买 nike

我一直在尝试填写一个LinkedList。我写了以下代码:

List<Item> lst = new LinkedList<Item>();
Item item = new Item();
for(ListItem it : getAllItems()){
item.setDate(it.getDate);
//Setting up it's property to item
lst.add(item);
}

但是在执行上面的代码之后,我们有 lst 包含相同元素的 List,它是在 foreach 主体的最后一次执行时添加的。我希望我们有一个 List 元素,它已在 foreach 主体的任何执行时设置。

最佳答案

您将在每次循环迭代中添加相同 Item 对象。由于您每次还更改了它的日期,因此它以最后一个日期集结束。

for(ListItem it : getAllItems()){
Item item = new Item();
item.setDate(it.getDate);
//Setting up it's property to item
lst.add(item);
}

请注意,调用 add 不会将 item 的副本添加到列表(您可能一直在假设),而是添加另一个 reference 将此 item 添加到列表中。

关于java - 为什么我的 LinkedList 充满了相同的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25378435/

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