将“未知”值与int进行比较

时间:2013-04-26 05:11:42

标签: java max

是否可以将未知数据类型与int进行比较。我正在尝试编写一个获取最大节点数的函数,但数据类型是E而不是int

到目前为止,我的代码是..

public E getMax() {
  if (isEmpty()) {
    throw new NoSuchElementException(" error " ) ; 
  } else {
    Node n = first;

    E x ; 
    int max = 0 ; 
    while (n!=null) {
      if (n.data  > x) {
        max = n.data;
      }
    }
    return x;
  }
}

1 个答案:

答案 0 :(得分:2)

我可能会这样做(我假设n.data是E型)。

对于通用,我会:

class YourClass<E extends Comparable<? super E>>

然后您的getMax方法看起来像:

public E getMax()
{
    if (isEmpty())
        throw new NoSuchElementException(" error " );

    Node n = first;

    E max = n.data;

    while (n != null)
    {
        if (n.data.compareTo(max) > 0) // if n.data > max
            max = n.data;

        n = n.next; // move to the next node
    }

    return max;
}