私はいくつかのクラスが必要です.1つは、プリミティブな(ではない)値implements Comparator
を比較したいです。boolean
Boolean
ブール値の場合、0、-1、または 1 を返すものだけを返します。しかし、プリミティブreturn boolA.compareTo(boolB);
でこれを行うにはどうすればよいでしょうか。
私はいくつかのクラスが必要です.1つは、プリミティブな(ではない)値implements Comparator
を比較したいです。boolean
Boolean
ブール値の場合、0、-1、または 1 を返すものだけを返します。しかし、プリミティブreturn boolA.compareTo(boolB);
でこれを行うにはどうすればよいでしょうか。
java.lang.Boolean
そのクラスは当然、プリミティブブール値も使用するため、 の実装方法を調べることができます。
public int compareTo(Boolean b) {
return (b.value == value ? 0 : (value ? 1 : -1));
}
Java 7 以降では、組み込みの静的メソッドを簡単に使用できますBoolean.compare(a, b)
。
Boolean-Adapter クラスのさらに優れたアプローチと正しい使用
public int compare(boolean lhs, boolean rhs) {
return Boolean.compare(lhs, rhs);
}
編集:
ヒント: これにより、「偽」の値が最初にソートされます。並べ替えを逆にしたい場合は、次のように使用します。
(-1 * Boolean.compare(lhs, rhs))