繁体   English   中英

放入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进行迭代,在此vector中为35036。 tmp1tmp2变量仅供检查。 80%的数据被跳过(如果block,obs.toList()。size()为35036),其余的数据(20%)则被我使用。 问题:我在else块中重复了7007次,但是在predictPoints中只有7003个项目。 如果我使用较少的数据,则不会发生此问题。 如果我使用不带Date TreeMap ,例如TreeMap<Integer, Double>则我在地图中有7007个项目,这是正确的。 每个数字都是唯一的-我测试了它。 4件丢失的物品在哪里? :-(

感谢您的任何建议。

地图不支持重复键,因此,如果将7007项添加到地图,但最终只能包含7003项,则其中4个项具有重复键并替换了先前的值。

检查put()的返回值以检查它是否替换了现有值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM