0

我正在尝试对通用节点类型 E 使用 compareTo 方法。

我已经将 E 绑定到 Comparable

public class LinkedList<E extends Comparable<E>> {

    //  ----------------------------------------------------------
    //  Implementing the doubly linked nodes (static nested class)
    //  ----------------------------------------------------------

    private static class Node<E extends Comparable<E>> {

这个方法 isSorted 在 LinkedList 类中实现,Node 类在 Linkedlist 类中。

我不断收到编译错误“LinkedList.Node 类型的方法 compareTo(LinkedList.Node) 未定义”

我相信只有当 E 没有扩展 Comparable 时才会弹出,在我的情况下是这样。有什么帮助吗?

 public boolean isSorted( ){

        if(!isEmpty()){

        Node<E> temp = head;
        boolean local = true;
        int x=0;
        while (temp.next != null){
          x=temp.compareTo(temp.next);
          if(x<0){
            temp = temp.next;}
          else {return local;}

        }
        return local;}
        else{ throw new IllegalArgumentException();}
      }

我已经检查了这个线程,如何使用 Comparable 比较链表中的通用节点?

它没有帮助。

先感谢您

Mjall2

4

1 回答 1

2

您正在尝试比较节点,当它只是节点内的值时Comparable。而不是temp.compareTo(temp.next),你可能想要类似的东西temp.value.compareTo(temp.next.value)

于 2012-04-10T00:48:13.097 回答