Как сравнить элементы E - PullRequest
       14

Как сравнить элементы E

0 голосов
/ 27 февраля 2020

Итак, я пытаюсь сравнить узлы списка. Большинство смежных вопросов по всему inte rnet, которые предоставляют ответы для этого, должны реализовать сопоставимый интерфейс.

//This is a nested class
private static class Node<E> implements Comparable<Node<E>> {
    private E element;

    ......
    ......

    public int compareTo(Node<E> o) {
       return element >= o.element ? 1 : 0;
    }
}

Проблема в том, что он выдает ошибку компилятора bad operand types for binary '>=' first type: E; second type: E. Я даже не могу использовать что-то вроде этого: return element.compareTo(o.element);, потому что compareTo не определено.

Что я могу сделать, чтобы это исправить? Большинство решений для такой проблемы по всему net не работает для меня ... Пожалуйста, помогите. Спасибо ....

1 Ответ

4 голосов
/ 27 февраля 2020

Вам необходимо объявить его как class Node<E extends Comparable<E>>, чтобы у E был свой метод compareTo:

private static class Node<E extends Comparable<E>> implements Comparable<Node<E>> {
    private E element;

    public int compareTo(Node<E> o) {
       return element.compareTo(o.element);
    }
}
...