我们有一些代码可以根据坐标之间的距离对地址列表进行排序。这是通过带有自定义比较器的 collections.sort 完成的。
然而,有时列表中没有坐标的地址会导致 NullPointerException。我最初解决这个问题的想法是让比较器返回 0 作为至少一个坐标为空的地址的距离。我担心这可能会导致列表中“有效”元素的顺序损坏。
那么在比较器中为空数据返回“0”值是否正常,或者是否有更简洁的方法来解决这个问题?
原文由 pvgoddijn 发布,翻译遵循 CC BY-SA 4.0 许可协议
处理它就像
null
意味着无限远。因此:comp(1234, null) == -1
comp(null, null) == 0
comp(null, 1234) == 1
这样,您就可以获得一致的排序。