我有一个 Stack<Object>
和下面的一段代码:
while(!stack.isEmpty()){
Object object = stack.pop();
// do some operation on object
}
如何使用 Java 8 Stream 实现此迭代,以便它循环直到堆栈为空,并且在每次迭代中都应通过从顶部弹出一个元素来减少堆栈?
最佳答案
在 Java 9 中,将有一个 3-arg 版本的 Stream.iterate(就像一个 for
循环——初始值,用于确定输入结束的 lambda,用于确定下一个输入的 lambda ) 可以做到这一点,尽管它会有点紧张:
if (!stack.isEmpty()) {
Stream.iterate(stack.pop(),
e -> !stack.isEmpty(),
e -> stack.pop())
...
}
关于java - 如何使用 Java 8 Stream 实现 Stack Iteration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38159906/