放入 TreeMap - 奇怪的行为
Putting into TreeMap - strange behavior
如果有任何建议,我将不胜感激。我有这个代码:
TreeMap<Date, Double> predictPoints = new TreeMap<Date, Double>();
while(iterator_time.hasNext()) {
Date time = iterator_time.next();
if (count < obs.toList().size()) {
count++;tmp1++;
continue;
} else {
for (int j = 0; j <= degreePolynom; j++) {
predictConsumption += coeff[j] * Math.pow(time.getTime(), j);
}
predictPoints.put(time, predictConsumption);
predictConsumption = 0.0;
count++;tmp2++;
}
}
我遍历 Vector
并且在这个向量中是 35036 个数字。 tmp1
和 tmp2
变量仅供检查。跳过 80% 的数据(如果块,obs.toList().size() 是 35036),我使用其余数据 (20%)。问题:我在 else
块中迭代了 7007 次,但在 predictPoints
中只有 7003 个项目。如果我使用较少的数据,则不会出现此问题。如果我使用 TreeMap
而没有 Date
,例如 TreeMap<Integer, Double>
那么我在地图中有 7007 个项目,这是正确的。每个数字都是独一无二的——我测试过。
4 丢失的物品在哪里? :-(
感谢您的任何建议。
地图不支持重复键,因此如果您将 7007
个项目添加到地图,但最终只有 7003
个项目,那么 4
个项目有重复键和 替换了 以前的值。
检查 put()
的 return 值以检查它是否替换了现有值。
如果有任何建议,我将不胜感激。我有这个代码:
TreeMap<Date, Double> predictPoints = new TreeMap<Date, Double>();
while(iterator_time.hasNext()) {
Date time = iterator_time.next();
if (count < obs.toList().size()) {
count++;tmp1++;
continue;
} else {
for (int j = 0; j <= degreePolynom; j++) {
predictConsumption += coeff[j] * Math.pow(time.getTime(), j);
}
predictPoints.put(time, predictConsumption);
predictConsumption = 0.0;
count++;tmp2++;
}
}
我遍历 Vector
并且在这个向量中是 35036 个数字。 tmp1
和 tmp2
变量仅供检查。跳过 80% 的数据(如果块,obs.toList().size() 是 35036),我使用其余数据 (20%)。问题:我在 else
块中迭代了 7007 次,但在 predictPoints
中只有 7003 个项目。如果我使用较少的数据,则不会出现此问题。如果我使用 TreeMap
而没有 Date
,例如 TreeMap<Integer, Double>
那么我在地图中有 7007 个项目,这是正确的。每个数字都是独一无二的——我测试过。
4 丢失的物品在哪里? :-(
感谢您的任何建议。
地图不支持重复键,因此如果您将 7007
个项目添加到地图,但最终只有 7003
个项目,那么 4
个项目有重复键和 替换了 以前的值。
检查 put()
的 return 值以检查它是否替换了现有值。