来自tempC
的值已正确生成(已调试),但在插入"天" list(已经尝试过简单的Array,Linked List和ArrayList),它们会覆盖以前的值并添加新的值。
让我说明一下:
- > "天"有一个日历的值为03/26/2016
- >一个新的价值" 04/25/2016"被添加到集合中 - > "天"现在有两个日历,但不是" 03/26/2016"和" 04/25/2016"他们有价值观" 04/25/2016"和" 04/25/2016"
- >每次迭代都会像这样继续,总是添加新的日历并用新的日历覆盖所有以前的日历
以下是代码段:
public LinkedList<Calendar> days = new LinkedList<Calendar>();
private void calculateCreditReturn(){
Calendar tempC = Calendar.getInstance();
for(int x=0; x<parcels; x++){
tempC.add(Calendar.DAY_OF_YEAR, 30);
days.add(tempC);
}
}
答案 0 :(得分:0)
您正在列表中添加相同的对象。
在你的情况下:
tempC -> 03/26/2016
list = [tempC]
Change tempC: tempC -> 04/25/2016
list = [tempC, tempC]
因此,基本上,您必须先创建另一个Calendar对象,然后再将其添加到列表中。
答案 1 :(得分:0)
使用此:
public LinkedList<Calendar> days = new LinkedList<Calendar>();
private void calculateCreditReturn(){
Calendar tempC = Calendar.getInstance();
for(int x=0; x<10; x++){
tempC.add(Calendar.DAY_OF_YEAR, 30);
Calendar forStore = (Calendar) tempC.clone();
days.add(forStore);
}
}
我们创建了一个名为forstore
的克隆,而不是存储tempC,我们将其存储在列表中。