Java Can';双链表的t解indexOf函数
我有一个我似乎无法理解的函数 说明: 返回此列表中第一次出现的指定元素的索引, 如果此列表不包含元素,则为-1 索引是基于0的(即,第一个“实”节点(在伪头之后)是索引0)。 @param x要搜索的元素 所以,这里发生的是函数在一个对象中传递,在我的例子中是一个数字。IndexOf应该检查数字列表,看看是否有匹配项。如果找到匹配项,它将返回对象的索引。我的问题是,它只返回初始化为的任何结果。如何使其返回索引Java Can';双链表的t解indexOf函数,java,indexing,Java,Indexing,我有一个我似乎无法理解的函数 说明: 返回此列表中第一次出现的指定元素的索引, 如果此列表不包含元素,则为-1 索引是基于0的(即,第一个“实”节点(在伪头之后)是索引0)。 @param x要搜索的元素 所以,这里发生的是函数在一个对象中传递,在我的例子中是一个数字。IndexOf应该检查数字列表,看看是否有匹配项。如果找到匹配项,它将返回对象的索引。我的问题是,它只返回初始化为的任何结果。如何使其返回索引 public int indexOf(Object x) { Node cur
public int indexOf(Object x)
{
Node current = head;
int result = 0;
for(int i = 0; i < elementCount; i++){
if(x.equals(current.data)){
result = i;
return result;
}
}
return result;
}
public int indexOf(对象x)
{
节点电流=头;
int结果=0;
for(int i=0;i
您的“current”始终指向头部,因此即使您正在为列表中的所有元素运行for循环,您也会在每个阶段将“x”与头部中的任何元素进行比较
因此,在for循环中,在测试之后,应该增加“current”
for(int i = 0; i < elementCount; i++){
if(x.equals(current.data)){
result = i;
return result;
}
current = current.next; // increment current pointer so that it
// points to the next node in the list
}
for(int i=0;i
另外,理想情况下,您不应该将结果初始化为0,而应该初始化为-1。因此,如果完全找不到中的x,您的方法将返回-1(而不是0,这是错误的)。我找到了它。谢谢你的帮助。