【发布时间】:2015-09-15 17:20:27
【问题描述】:
我将从我的代码开始
public void simulateSale(List<IceCream> dailyIceCreamStock) {
date = LocalDate.now().minusDays(6);
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd");
for (int i = 0; i < timeInterval; i++) {
for(IceCream iceCream: dailyIceCreamStock){
iceCream.setSoldCount(rand.nextInt(IceCream.AMOUNT + 1));
iceCream.setStockDate(date);
}
//Every day should have different ArrayList of values
this.weeklyStats.put(date.toString(fmt), dailyIceCreamStock);
date = date.plusDays(1);
}
问题出在这一行:this.weeklyStats.put(date.toString(fmt), dailyIceCreamStock);
如您所见,我将随机生成的值添加到类型的哈希图中:
Map<String, List<IceCream>> weeklyStats
问题是,当我迭代这个哈希图时,每个键都有相同的值列表。输出如下所示:
[11, 3, 11, 12, 20]
[11, 3, 11, 12, 20]
[11, 3, 11, 12, 20]
[11, 3, 11, 12, 20]
[11, 3, 11, 12, 20]
[11, 3, 11, 12, 20]
[11, 3, 11, 12, 20]
期望的输出是在这个列表的每一个中都有随机值。 我想,范围有问题,我不明白
【问题讨论】:
-
循环中没有变量。什么是时间间隔?
-
timeInterval 是全局 int 变量,在这种情况下,它的值为 7
-
正如其他人回答的那样,dailyIceCreamStock 对于每周的统计数据都是一样的。