[英]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。 tmp1
和tmp2
變量僅供檢查。 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.