我希望尽快创建一个HashMap<String,String> m
的键值对字符串。
我尝试过:
StringBuffer buf = new StringBuffer();
buf.append("[");
for (String key : m.keySet()) {
buf.append(key);
buf.append("=");
buf.append(m.get(key));
buf.append(";");
}
buf.append("]");
使用Java8我尝试:
m.entrySet().stream()
.map(entry -> entry.getKey() + " = " + entry.getValue())
.collect(Collectors.joining("; " , "[" , "]"));
有没有更快、更好的代码来实现这个操作? 在map函数中追加键和值看起来很耗费资源,不是吗?
m.toString()
的结果可能足够接近,这并不重要。 - Sean BrightStringJoiner
(这是Collectors.joining
的基础类)进行了优化,因此流实现的速度比JDK 8快约20-25%(尽管仍然不如朴素方法快)。 - Tagir Valeev