您好我是Java的新手,并且链接列表存在此问题。我的find和max方法没有产生正确的输出。 find方法是将类型E元素作为参数,如果项目在链接列表中,则返回true,否则返回false。 如果列表不为空,则max方法返回列表中的最大元素;如果为空列表,则返回null。比较必须通过compareTo()。
完成我试过找到“Apple”,确实在列表中,然而,返回false。 我得到的最大元素是“Apple”,而不是“西瓜”。
非常感谢任何帮助!
public E max(){
Iterator<E> iterator=iterator();
E max = iterator.next();
while (iterator.hasNext())
{
E next = iterator.next();
if (max.compareTo(next) > 0)
max = next;
}
return max;
}
答案 0 :(得分:2)
if (current.equals(e)){
return true;
您需要与Node的项目进行比较,而不是Node本身。
if (max.compareTo(next) > 0)
max = next;
这种比较需要颠倒过来:如果旧版{em> ,则找到新的max
。