2014-06-30 87 views
2

我有TreeMap,它響應< document_id,document_relevance_factor>。這是一個1:n的關係。然後我想按值排序resuls,所以我只需使用Map < Double,設置< Integer>>來顛倒地圖。但是,我收到了一些奇怪的結果。下面的輸出來自Intellij Idea的調試器,但它也是不使用調試器時生成的輸出。TreeMap奇自然排序

原始地圖:

Original Map

..和另一個150名的條目。下面反向映射(大部分150項的有0.0相關性):

地圖按相關性排序:

Map sorted according to relevance

我的問題是,如果雙打根據其自然順序進行排序,它怎麼可能有這個輸出?我讀this計算器後,也試圖提供我自己的copmarator:

Map<Double, Set<Integer>> reverseDocMap = new TreeMap<>(new Comparator<Double>() { // default comparator gives odd results 
    public int compare(Double d1, Double d2) { 

     return (int) ((d1 - d2) * 1_000_000); 
    } 
}); 

但這並沒有解決問題,所以我幾乎100%肯定,我失去了一些重要的東西,但我實在不明白它是什麼。

回答

0

是的,我絕對是盲人,數字是科學記數法。

+0

大聲笑,我正要說,在評論哈哈 –

+0

這不能是一個答案。這是一個評論。 – Juvanis