放入 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 个数字。 tmp1tmp2 变量仅供检查。跳过 80% 的数据(如果块,obs.toList().size() 是 35036),我使用其余数据 (20%)。问题:我在 else 块中迭代了 7007 次,但在 predictPoints 中只有 7003 个项目。如果我使用较少的数据,则不会出现此问题。如果我使用 TreeMap 而没有 Date,例如 TreeMap<Integer, Double> 那么我在地图中有 7007 个项目,这是正确的。每个数字都是独一无二的——我测试过。 4 丢失的物品在哪里? :-(

感谢您的任何建议。

地图不支持重复键,因此如果您将 7007 个项目添加到地图,但最终只有 7003 个项目,那么 4 个项目有重复键和 替换了 以前的值。

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