java - 在 toString 方法中返回动态堆栈链表的所有值
问题描述
我试图弄清楚如何使用 toString 方法输出节点“最新”的所有版本,但我对如何在这种情况下使 while 循环正常工作感到困惑。我想知道是否有一种方法可以这样做。
这是toString()
方法:
public String toString() {
String output = "key: " + key ;
Node<VersionedObject> currNode = latest;
while (latest != null){
output += latest+ "\n\t";
latest.setNext(latest);
} // This isn't particularly working
//return "key: " + key +"\n\t" +latest + "\n\t" + latest.getNext(); // placeholder but it's getting closer. This one is INSANELY specific
return output;
}
, 下面是创建列表的方法:
public StackOfVersionedObjects(String key, final Object object) {
this.key = key;
VersionedObject vrObject = new VersionedObject(object);
latest = new Node<VersionedObject>(vrObject);
}
,这是我的节点类:
public class Node<T> {
private T data;
private Node next;
public Node() {
data = null;
next = null;
}
public Node(T data) {
this.data = data;
next = null;
}
public T getData() {
return data;
}
public Node<T> getNext() {
return next;
}
public void setData(T data) {
this.data = data;
}
public void setNext(Node<T> next) {
this.next = next;
}
@Override
public String toString() {
return data.toString();
}
}
解决方案
像这样更改latest
tocurrentNode
和循环
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("key: " + key);
Node<VersionedObject> currNode = latest;
while (currNode != null){
builder.append(currNode + "\n\t");
currNode = currNode.getNext();
}
return builder.toString();
}
推荐阅读
- html - PhpStorm 或 SublimeText:搜索特定标签的表单类名 (CSS)
- reactjs - 如何在按钮单击时将文本框值传递给兄弟组件
- java - TCP/IP 客户端向服务器发送多条消息
- pyspark - 使用 pyspark 从文本文件中读取数据时出现“无效语法”错误
- c - 将空指针传递给 Fortran C 绑定
- javascript - 如何更快地显示 20000 行数据?
- asp.net - 搜索功能失败
- python - 在 Python x Django 上完成文件下载后删除文件
- django - django apiview 中自定义方法的 URL
- c# - LibGit2Sharp 是否支持克隆多个存储库?