Java 关于 equals 和 compareTo 方法的问题
Java questions on equals and compareTo method
嗨,我是 Java 的新手,在 linkedList 上运行 2 个方法时遇到这个问题。
我写的find函数总是return false。
find方法是以一个E类型的元素作为参数,return如果该项在链表中则为true,否则为false。
max 方法是 return 如果列表不为空则列表中的最大元素(在本例中为最长字符串),如果列表为空则为 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
总是 returns false 因为你将 node
和 current
初始化为空,所以永远不会进入循环。此外,您应该将 e 与项目进行比较,而不是与节点进行比较。
大概应该是:
public boolean find(E e){
Node current = head;
while (current != null){
if (current.item.equals(e)){
嗨,我是 Java 的新手,在 linkedList 上运行 2 个方法时遇到这个问题。
我写的find函数总是return false。 find方法是以一个E类型的元素作为参数,return如果该项在链表中则为true,否则为false。
max 方法是 return 如果列表不为空则列表中的最大元素(在本例中为最长字符串),如果列表为空则为 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
总是 returns false 因为你将 node
和 current
初始化为空,所以永远不会进入循环。此外,您应该将 e 与项目进行比较,而不是与节点进行比较。
大概应该是:
public boolean find(E e){
Node current = head;
while (current != null){
if (current.item.equals(e)){