繁体   English   中英

如何比较 E 元素

[英]How to compare E elements

所以我想做的是比较列表的节点。 互联网上提供答案的大多数相关问题是实现可比较的接口。

//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抛出编译器错误bad operand types for binary '>=' first type: E; second type: E bad operand types for binary '>=' first type: E; second type: E 我什至不能使用这样的东西: return element.compareTo(o.element); 因为compareTo没有定义。

我能做些什么来解决这个问题? 网络上针对此类问题的大多数解决方案对我都不起作用...请帮助。 谢谢....

您需要将其声明为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);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM