您好我在编码此indexOf
个对象的LinkedList
方法时遇到问题。每当我试图返回“index”时,它返回3,这是假的,因为我在列表中只有3个数字,索引从0开始,所以最高索引是2。
import java.util.Scanner;
import java.util.*;
public class LinkedList<E>
{
static Scanner in = new Scanner (System.in);
protected class Node<E> {
public Object data;
public Node<E> next;
public Node(Object data)
{
this.data = data;
}
}
protected Node<E> first = null;
public void prepend(Object e)
{
Node<E> newnode = new Node<E>(e);
newnode.next = first;
first = newnode;
}
public int indexOf(Object e)
{
int index = 0;
Node<E> current = first;
while (current != null)
{
System.out.println(index);
if (current == e)
{
return index;
}
index++;
current = current.next;
}
return -1;
}
public static void main(String[] args)
{
LinkedList<Integer> list = new LinkedList<Integer>();
list.prepend(new Integer(1));
list.prepend(new Integer(2));
list.prepend(new Integer(3));
System.out.println(list.indexOf(2));
}
}
答案 0 :(得分:0)
if (current==(e))
需要
if (current.data.equals(e))
一个。但这并没有解释你如何得到3结果。
澄清:
&#34;但这并不能解释你如何得到3。&#34;
我不确定O.P.实际上得到了3分。看看代码,我发现了明显的错误,但质疑他们对原始问题的理解和措辞。
考虑到这一点,这是一个完整的答案。