gpt4 book ai didi

java - 如何比较字符串并返回链接节点中的位置?

转载 作者:行者123 更新时间:2023-11-29 07:46:01 27 4
gpt4 key购买 nike

我正在尝试编写一个方法来返回给定对象在链表中的位置。

方法签名应该是public int getPosition(T anObject)

我在想出这个方法时遇到了麻烦。这是我目前所拥有的:

public int getPosition(T anObject) {
int position = 0;
Node currentNode = firstNode;

for(int i = 0; i < length; i++) {
if(anObject.equals(currentNode.data)) {
position = i + 1;
currentNode = currentNode.next;
}
}
return position;
}

我的输出位置没有改变。它保持为零。

这是我的驱动程序。

public class Homework3Driver {

public static void main(String[] args) {

String[] names = {"Abby", "Bobby", "Carla", "Doug"};
LList<String> nameList = new LList(names, 4);

String[] newNames = {"Edgar", "Frank"};
nameList.addAll(newNames);

System.out.println("Output should be 3: " + nameList.getPosition("Carla") + "\n");
System.out.println("Output should be 0 or a negative number: " + nameList.getPosition("George") + "\n");
}
}

最佳答案

一个更简单的解决方案可能是遍历列表,计算位置并逐个节点比较,直到到达节点。

public int getPosition(T anObject)  {
int position = 0;
Node currentNode = firstNode;

while(currentNode != null) {
if(anObject.equals(currentNode.data)) {
break; // we found our node so we can stop searching
}
position++;
currentNode = currentNode.next;
}

// we iterated through the whole list and didn't find the node
if(currentNode == null) {
return -1; // or some other error value
}

return position;
}

关于java - 如何比较字符串并返回链接节点中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25734874/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com