簡體   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