假设我有一个堆栈 -
O (stack top)
L
L
E
H (stack bottom)
Run Code Online (Sandbox Code Playgroud)
将它转换为"HELLO"的简洁方法是什么?
现在我这样做 -
private static String getString(Stack<Character> charStack) {
StringBuilder output = new StringBuilder();
while (!charStack.isEmpty()) {
output.append(charStack.pop());
}
return output.reverse().toString();
}
Run Code Online (Sandbox Code Playgroud)
使用map和Collectors,做一些有问题的代码的方法是:
return charStack.stream().map(Object::toString).collect(Collectors.joining());
Run Code Online (Sandbox Code Playgroud)
编辑:从注释(1)和(2)可见,如果清空堆栈是一个有意的操作,您可以更新代码以包括行为,如下所示:
String output = charStack.stream().map(Object::toString).collect(Collectors.joining());
charStack.clear();
return output;
Run Code Online (Sandbox Code Playgroud)