[英]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.