Java 放入树映射-奇怪的行为
如蒙指教,我将不胜感激。我有以下代码:Java 放入树映射-奇怪的行为,java,treemap,Java,Treemap,如蒙指教,我将不胜感激。我有以下代码: TreeMap<Date, Double> predictPoints = new TreeMap<Date, Double>(); while(iterator_time.hasNext()) { Date time = iterator_time.next(); if (count < obs.toList().size()) { count
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++;
}
}
TreeMap predictPoints=newtreemap();
while(迭代器_time.hasNext()){
日期时间=迭代器_time.next();
如果(计数 对于(int j=0;j贴图不支持重复键,因此如果将7007
项添加到贴图中,但只得到7003
项,则项目中的4
项具有重复键并替换了以前的值
检查put()
的返回值以检查它是否替换了现有值。不相关,但为什么(哦为什么)您使用的是Vector
?自从1998年的Java 1.2以来,它实际上已经被弃用了。他们甚至建议在javadoc中使用ArrayList
。@Dmitry。ContainesKey
只有一个参数,而且由于映射值(predictConsumption
)从不为null,简单地检查put的返回值比使用额外的调用containsKey要快。我知道,但这很奇怪,因为键是日期,它们是唯一的。没有其他选择了?但我肯定会尝试put()的值。谢谢。@DanielHerbrychVector
(而且它是ArrayList
replacement)允许重复值,因此它可以有两个具有相同时间戳的值。谢谢,你说得对……有4个重复项……!非常感谢much@DanielHerbrych如果答案有用,请单击左侧的向上箭头(工具提示:“此答案有用”)。如果答案是您正在寻找的,也可以使用复选标记“接受”答案。这样,其他人就可以看到问题以可接受的方式得到了回答。