Mal*_*ean 9 java sorting collections treemap
正如在HashMap中对Double的回答中所描述的,双打不应该在HashMaps中使用,因为它们很难比较相等.我相信我的情况有所不同,但我想我要确认,因为我没有看到任何关于此的事情.
我将要有一系列与对象关联的double值,我希望它们按double值排序.TreeMap是一个合适的解决方案吗?会有更好的吗?double值是一堆数学生成的,因此重复值的可能性非常低.
编辑:我应该澄清:我需要的是让这个对象列表按照与它们相关联的双精度排序.双打的价值将被丢弃,我永远不会打电话map.get(key)
aio*_*obe 14
不应在HashMaps中使用双打,因为它们难以比较相等.
你会尝试get基于某些键的值吗?
如果是,则对推理"很难比较"适用,你应该避免这样的数据结构(或总是依靠tailMap/ headMap/ submap并获取地图的范围).
如果没有(即你通常只是做for (Double key : map.keySet()) ...或迭代entrySet),那么我会说你很好Double用作键.
double值是一堆数学生成的,因此重复值的可能性非常低.
它是一个错误,如果你真正做得到重复?
如果是,那么它不是正确的数据结构.例如,您可以使用MultimapGuava代替.
如果不是,(即它映射到的两个值中的哪一个无关紧要,因为它们只能通过一个小的epsilon来区分)那么你应该没问题.