如果ListNode为o1.value>,如何比较两个ListNode值以返回1? ListNode o2.value,如果相等则返回0,如果小于。则返回-1。
我现在有这个比较器,但是有一个错误说抽象方法没有实现。此外,我不确定他们是否会正确比较以下示例中的值。
添加'd'。添加'b'。添加'e'
B-> D-&GT,E
private Comparator<? super E> priorityComparator = new Comparator<E>(){
public int compare(ListNode<E> o1, ListNode<E> o2) {
String i1 = o1.value.toString();
String i2 = o2.value.toString();
return i1.compareTo(i2);
}};
如何正确实现此比较器,以便它需要两个ListNode对象并返回它们之间的int值比较?
答案 0 :(得分:4)
您目前尚未实施Comparator<E>.compare
- 您已实施Comparator<ListNode<E>>.compare
。您要么需要更改变量的类型,或需要将参数更改为方法。如果您真的想要制作比较节点的内容,那么您需要Comparator<ListNode<E>>
。
另请注意,您的比较仅适用于以与其自然顺序兼容的方式覆盖toString()
的类型。例如,它不适用于ListNode<Integer>
,因为它声称值10小于2的值...