Java 8 - 在括号中映射到逗号分隔的对

时间:2017-03-06 17:25:43

标签: java-8

Java 8 获取

的最佳方式是什么?
Map<Integer, Integer>

到类似的字符串:

[k1,v1],[k2,v2],[k3,v3]...

我正在看这样的事情,但我不知道如何&#34;返回&#34;或&#34;地图&#34; StringBuilder

map.forEach( (k,v) -> s.append("[").append(k).append(",").append(v).append("]") )
                    .collect(Collectors.joining(", "));

无论如何,我认为StringBuilder不适合未来的参与派的多线程。

请注意,我可以迭代Map并以旧方式创建所有结构,但我想看看如何使用一些新的Java8功能来完成它。

我认为有些toString()偶然会在括号中返回地图值,这可能很方便,但依靠这个并不是一个好主意。

1 个答案:

答案 0 :(得分:7)

map.entrySet()
   .stream()
   .map(e -> "[" + e.getKey() + "," + e.getValue() + "]")
   .collect(Collectors.joining(","));