gpt4 book ai didi

java - 如何更改链表中的元素?

转载 作者:行者123 更新时间:2023-12-02 08:46:32 25 4
gpt4 key购买 nike

进入以下代码的代码是什么:void changeElem(String oldStr, String newStr)

我有一个驾驶员类(class):

public static void main(String[] args) {
// create empty list
SimpleLinkedList list = new SimpleLinkedList(null);

// add some elements in the list in
// reverse order so that list is sorted
list.addElement("W");
list.addElement("T");
list.addElement("P");
list.addElement("L");
list.addElement("K");
list.addElement("B");
list.printList();

System.out.println("change W to X");
list.changeElem("W", "X");
}

我应该在另一个类中创建一个名为“changeElem”的新方法,其中void changeElem(String oldStr, String newStr) 但我不知道如何。

最佳答案

manikanta的回答是正确的;但是,changeElement(List list, String string, String replacement) 要求您将 List 作为参数传递,这意味着您不能在上下文中使用它 list.changeElement("W ”,“X”)

我假设 SimpleLinkedList 是您已实现的 Java 类。

要将方法用作 list.changeElement("W", "X") 而不是 changeElement(list, "W", "X"),您需要将方法 changeElement 添加到 SimpleLinkedList 类(我认为这实际上是您的问题)。

由于该类的实际实现未知,因此如下所示:

public class SimpleLinkedList {
public void add(String str) {
//This should be an existing method, for example
}

//Assuming this is the implementation
private class Node {
String data;
Node nextNode;
}

private Node firstNode; //Should be set/unset in your add/remove method

//New method. To keep the order of your list, iterate and replace individually
public void changeElement(String str, String replacement) {
for (Node n = firstNode; n != null; n = n.nextNode) {
if (str.equals(n.data)) {
n.data = replacement;
break; //If you want to replace only one instance
}
}
}
}

此外,当有疑问时:查看 Java 的源代码。您基本上想要做的是找到 str 所在的位置,然后替换它。

这几乎就是 Java LinkedList#indexOf方法,只不过当您找到 str 时不是返回索引,而是替换它。 Java's LinkedList#indexOf() implementation .

关于java - 如何更改链表中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61049043/

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