堆栈不将项目推入集合
Stack not pushing items into the collection
我的采集实现如下:
private void init(Node<K, E> root) {
Node<K,E> node = root;
while (node != null) {
stack.push(node);
node = node.getLeft();
}
}
但是当它被调用和使用时,Stack中似乎什么都没有。我已经尝试过详尽的调试但没有任何效果,关于我实现上述组件的方式可能出了什么问题有什么建议吗?
您已将 Stack
设为不可变。当您调用 push()
方法时,它实际上并没有将节点压入堆栈,而是 returns 一个新的不可变 Stack
并将该元素压入堆栈。当调用所有修改方法如push
和pop
时,在行前添加stack =
以将新返回的堆栈分配回stack
。
例如替换
stack.push(node);
和
stack = stack.push(node);
我的采集实现如下:
private void init(Node<K, E> root) {
Node<K,E> node = root;
while (node != null) {
stack.push(node);
node = node.getLeft();
}
}
但是当它被调用和使用时,Stack中似乎什么都没有。我已经尝试过详尽的调试但没有任何效果,关于我实现上述组件的方式可能出了什么问题有什么建议吗?
您已将 Stack
设为不可变。当您调用 push()
方法时,它实际上并没有将节点压入堆栈,而是 returns 一个新的不可变 Stack
并将该元素压入堆栈。当调用所有修改方法如push
和pop
时,在行前添加stack =
以将新返回的堆栈分配回stack
。
例如替换
stack.push(node);
和
stack = stack.push(node);