2014-06-30 57 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