我有TreeMap响应< document_id,document_relevance_factor>。它是一个1:n的关系。然后我想按值排序结果,所以我只是使用Map<反转地图。双倍,设置<整数>取代。但是,我得到了一些奇怪的结果。下面的输出来自Intellij Idea的调试器,但它也是在不使用调试器时生成的输出。
原始地图:
..和另外150个条目。下面的反转地图(150个条目中的大部分都有0.0相关性):
根据相关性排序的地图:
我的问题是,如果按照自然顺序排序双打,那么输出的可能性如何?我阅读了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%肯定我错过了一些重要的东西,但我无法弄清楚它是什么。
答案 0 :(得分:0)
是的,我绝对是盲目的,数字是科学记数法。