Ответ от manikanta правильный; однако, changeElement(List list, String string, String replacement)
требует, чтобы вы передавали список в качестве параметра, что означает, что вы не можете использовать его в контексте 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. Что вы в основном хотите сделать, это find
место, где находится str
, а затем заменить его.
Это почти функция Java LinkedList indexOf(String str)
, за исключением того, что вместо возврата индекса, когда вы находите str
, вы заменяете его. Реализация LinkedList Java indexOf ()