用于比较两个ListNode值的比较器

时间:2012-10-24 17:43:59

标签: java

如果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值比较?

1 个答案:

答案 0 :(得分:4)

您目前尚未实施Comparator<E>.compare - 您已实施Comparator<ListNode<E>>.compare。您要么需要更改变量的类型,需要将参数更改为方法。如果您真的想要制作比较节点的内容,那么您需要Comparator<ListNode<E>>

另请注意,您的比较仅适用于以与其自然顺序兼容的方式覆盖toString()的类型。例如,它不适用于ListNode<Integer>,因为它声称值10小于2的值...