java - 从字符堆栈构造字符串的高效简洁方法是什么

标签 java java-8 stack

假设我有一个堆栈 -

O (stack top)
L
L
E
H (stack bottom)

将其转换为“HELLO”的简洁方法是什么

现在我是这样做的-

private static String getString(Stack<Character> charStack) {
  StringBuilder output = new StringBuilder();

  while (!charStack.isEmpty()) {
      output.append(charStack.pop());    
  }

  return output.reverse().toString();
}

最佳答案

使用 mapCollectors,一种执行相关代码意图的方法是:

return charStack.stream().map(Object::toString).collect(Collectors.joining());

编辑:从评论可见(1)(2) ,如果清空堆栈是有意的操作,您可以更新代码以包含如下行为:

String output = charStack.stream().map(Object::toString).collect(Collectors.joining());
charStack.clear();
return output;

关于java - 从字符堆栈构造字符串的高效简洁方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46728067/

相关文章:

java - 流在过滤器中抛出异常

C++ 堆损坏但仅在单元测试项目中

java - Java与Golang http性能比较

java - 使用 Redis 运行 Storm 时出错 : java. lang.NoClassDefFoundError: Lredis/clients/jedis/Jedis

java - Spring 事务传播问题

java - 始终等待页面加载到 PageObjects 上

Java 8 消费者和副作用

java - 有没有办法用 Java 中已经包含的值初始化 SortedMap<Integer, String> ?

data-structures - FILO 总是 LIFO 吗?

java - 方法 isEmpty() 对于类型 InputStream 错误未定义