链接列表索引的方法实现



我在我的程序中有以下方法:

/** 
* Returns the index of the first occurrence of the specified item.
* If the specified item in not part of the list
* the method indexOf returns -1
* 
* @param item
* @return index of the first occurrence of the item; -1 if the word was not found.
*/
public int indexOf(String item) {   
int index = 0;
//While we haven't reached the end of the list
while(head != null) {
//If the items are equal return true
if(head.item == item) {
return index;           
}
//Set the head to the next and increment the index  
head = head.next;
index++;
}
return -1;
}

虽然一切对我来说看起来都是正确的(除了需要将 head.item == item 更改为 head.item.equals(item((,但它并没有给我正确的索引。

虽然它确实为一个没有在 est 中的元素给了我 -1,但每次它返回 0 作为列表中元素的索引时,我无法弄清楚为什么索引不递增。

任何意见将不胜感激!谢谢

当您在indexOfcontains中循环访问列表时,您似乎正在更改head值。head值应始终指向列表中的第一个条目,并且仅在appendprepend需要时才进行更改。若要迭代,应使用局部变量循环浏览列表。此外,您应该使用.equals来比较字符串值,而不是==

public int indexOf(String item) {   
int index = 0;
Node current = head;
//While we haven't reached the end of the list
while(current != null) {
//If the items are equal return the index
if(current.item.equals(item)) {
return index;           
}
//Set current to the next and increment the index  
current = current.next;
index++;
}
return -1;
}

相关内容

  • 没有找到相关文章

最新更新