Tap*_*ose 4 java stack java-8 java-stream java-9
我有Stack<Object>一段代码:
while(!stack.isEmpty()){
Object object = stack.pop();
// do some operation on object
}
Run Code Online (Sandbox Code Playgroud)
如何使用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())
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
870 次 |
| 最近记录: |