Выполнить Компаратор для примитивного булева типа?

Мне нужны некоторые классы implements Comparator, и для одного я хочу сравнить примитивные значения boolean (not boolean).

ЕСЛИ это было * B * oolean, я бы просто return boolA.compareTo(boolB);, который вернул бы 0, -1 или 1. Но как я могу сделать это с помощью примитивов?

Ответ 1

Вы можете посмотреть, как он реализован для java.lang.Boolean, так как этот класс, естественно, также использует примитивное логическое значение:

public int compareTo(Boolean b) {
    return (b.value == value ? 0 : (value ? 1 : -1));
}

Ответ 2

Так как Java 7, логика, которую Марко Тополник показал в своем ответе, перешла в другой метод, чтобы показать способ сравнения примитивного 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))

Ответ 3

Вы можете использовать функцию автообновления java для облегчения этой проблемы. Здесь вы можете прочитать об автобоксинге: Автосообщение Java

Ответ 4

Вы можете сравнить два примитивных логических значения b1 и b2 следующим образом.

(Boolean.valueOf(b1).equals(Boolean.valueOf(b2))