Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';双链表的t解indexOf函数_Java_Indexing - Fatal编程技术网

Java Can';双链表的t解indexOf函数

Java Can';双链表的t解indexOf函数,java,indexing,Java,Indexing,我有一个我似乎无法理解的函数 说明: 返回此列表中第一次出现的指定元素的索引, 如果此列表不包含元素,则为-1 索引是基于0的(即,第一个“实”节点(在伪头之后)是索引0)。 @param x要搜索的元素 所以,这里发生的是函数在一个对象中传递,在我的例子中是一个数字。IndexOf应该检查数字列表,看看是否有匹配项。如果找到匹配项,它将返回对象的索引。我的问题是,它只返回初始化为的任何结果。如何使其返回索引 public int indexOf(Object x) { Node cur

我有一个我似乎无法理解的函数

说明:

返回此列表中第一次出现的指定元素的索引, 如果此列表不包含元素,则为-1 索引是基于0的(即,第一个“实”节点(在伪头之后)是索引0)。 @param x要搜索的元素

所以,这里发生的是函数在一个对象中传递,在我的例子中是一个数字。IndexOf应该检查数字列表,看看是否有匹配项。如果找到匹配项,它将返回对象的索引。我的问题是,它只返回初始化为的任何结果。如何使其返回索引

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,这是错误的)。

我找到了它。谢谢你的帮助。