Java 树映射奇自然序

Java 树映射奇自然序,java,collections,intellij-idea,treemap,Java,Collections,Intellij Idea,Treemap,我有一个响应的树形图。这是一种1:n的关系。然后我想按值对结果排序,所以我只需使用map反转映射。然而,我得到了一些奇怪的结果。下面的输出来自Intellij Idea的调试器,但它也是不使用调试器时生成的输出 原始地图: 。。另外还有150个条目。下面的反向映射(这150个条目中的大多数具有0.0相关性): 根据相关性排序的地图: 我的问题是,如果double是按照它们的自然顺序排序的,那么怎么可能有这样的输出呢?我阅读了stackoverflow post,并试图提供我自己的直升机: M

我有一个响应的树形图。这是一种1:n的关系。然后我想按值对结果排序,所以我只需使用map>反转映射。然而,我得到了一些奇怪的结果。下面的输出来自Intellij Idea的调试器,但它也是不使用调试器时生成的输出

原始地图:

。。另外还有150个条目。下面的反向映射(这150个条目中的大多数具有0.0相关性):

根据相关性排序的地图:

我的问题是,如果double是按照它们的自然顺序排序的,那么怎么可能有这样的输出呢?我阅读了stackoverflow post,并试图提供我自己的直升机:

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);
    }
});
Map reverseDocMap=new TreeMap(new Comparator(){//默认Comparator给出奇数结果
公共整数比较(双d1,双d2){
报税表(整数)((首被告至次被告)*1_000_000);
}
});

但这并不能解决问题,所以我几乎100%肯定我错过了一些重要的东西,但我就是不知道它是什么。

是的,我肯定是瞎的,数字是用科学记数法的。

这不是答案。这是一个评论。