我需要一些类implements Comparator
,和一个我想要比较原始的boolean
(非Boolean
)值。
如果是A B oolean,我只想return boolA.compareTo(boolB);
这将返回0,-1或1但我怎么能做到这一点与原语?
我需要一些类implements Comparator
,和一个我想要比较原始的boolean
(非Boolean
)值。
如果是A B oolean,我只想return boolA.compareTo(boolB);
这将返回0,-1或1但我怎么能做到这一点与原语?
你可以看一下它是如何为实现java.lang.Boolean
,因为那类,自然,采用的是原始的布尔值,以及:
public int compareTo(Boolean b) {
return (b.value == value ? 0 : (value ? 1 : -1));
}
由于Java 7,该逻辑马尔科Topolnik显示,他的回答已经进入另一种方法揭露了一种比较原始的boolean
。
Javadoc文档Boolean.compare(boolean x, boolean y)
public static int compare(boolean x, boolean y)
Compares two boolean values. The value returned is identical to
what would be returned by:
Boolean.valueOf(x).compareTo(Boolean.valueOf(y))
您可以使用Java的自动装箱功能来缓解这个问题。 你可以读到这里自动装箱: Java的自动装箱
一个更好的途径和正确使用布尔适配器类
public int compare(boolean lhs, boolean rhs) {
return Boolean.compare(lhs, rhs);
}
编辑:
提示:这第一个排序“假”值。 如果要反转排序使用:
(-1 * Boolean.compare(lhs, rhs))
你可以比较两个基本布尔值B1和B2在下面的方式。
(通过Boolean.valueOf(B1).equals(通过Boolean.valueOf(B2))