gpt4 book ai didi

Java关于equals和compareTo方法的问题

转载 作者:行者123 更新时间:2023-11-29 05:07:21 26 4
gpt4 key购买 nike

您好,我是 Java 的新手,遇到了在 linkedList 上运行的 2 个方法的问题。

我写的 find 函数总是返回 false。find方法是以一个E类型的元素为参数,如果该项在链表中则返回true,否则返回false。

max 方法是如果列表不为空则返回列表中的最大元素(本例中为最长字符串),如果列表为空则返回 null。比较必须由 compareTo() 完成。我写的最大值只是查看每个元素(字符串)的第一个字母。

非常感谢任何帮助!

  public boolean find(E e){
LinkedListTest<E>.Node node = null;
Node current =node;
while (current != null){
if (current.equals(e)){
return true;
}
else{
current=current.next;
}
}
return false;
}
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;
}

最佳答案

您的find 总是返回false,因为您将nodecurrent 初始化为null,因此永远不会进入循环。此外,您应该将 e 与项目进行比较,而不是与节点进行比较。

大概应该是:

public boolean find(E e){
Node current = head;
while (current != null){
if (current.item.equals(e)){

关于Java关于equals和compareTo方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29910734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com