TreeMap奇自然排序

时间:2014-06-30 08:17:06

标签: java collections intellij-idea treemap

我有TreeMap响应< document_id,document_relevance_factor>。它是一个1:n的关系。然后我想按值排序结果,所以我只是使用Map<反转地图。双倍,设置<整数>取代。但是,我得到了一些奇怪的结果。下面的输出来自Intellij Idea的调试器,但它也是在不使用调试器时生成的输出。

原始地图:

Original Map

..和另外150个条目。下面的反转地图(150个条目中的大部分都有0.0相关性):

根据相关性排序的地图:

Map sorted according to relevance

我的问题是,如果按照自然顺序排序双打,那么输出的可能性如何?我阅读了this stackoverflow帖子,并试图提供我自己的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%肯定我错过了一些重要的东西,但我无法弄清楚它是什么。

1 个答案:

答案 0 :(得分:0)

是的,我绝对是盲目的,数字是科学记数法。