不错,将空值排序到底部的通用方法是什么?

不错,将空值排序到底部的通用方法是什么?,第1张

不错,将空值排序到底部的通用方法是什么?

最后一个选择对我很有吸引力。比较器非常好地链接在一起。特别是,您可能希望同时编写

ReverseComparator
NullWrappingComparator


编辑:您不必自己编写。如果您查看Google收藏库中的Ordering类,您会发现它以及其他各种好东西:)


编辑:进入更多细节以显示我的意思

ReverseComparator

一个警告的词-在a的实现中

ReverseComparator
颠倒参数的顺序,而不是求反,否则
Integer.MIN_VALUE
将“颠倒”自身。

所以这个实现是错误的(假设

original
比较器要反向):

public int compare(T x, T y){    return -original.compare(x, y);}

但这是正确的:

public int compare(T x, T y){    return original.compare(y, x);}

原因是,我们总是希望扭转比较,但如果

original.compare(x, y)
回报率
int.MIN_VALUE
,那么坏的比较器将
int.MIN_VALUE
,这是不正确。这是由于那个有趣的特性
int.MIN_VALUE == -int.MIN_VALUE



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5501456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存