我有Map<String,String>
,我需要将其转换为单String
:"key1:value1,key2:value2,..."
。
我可以使用迭代来做到这一点。但是我可以使用java 8的新lambda和流功能吗?谢谢!
答案 0 :(得分:10)
您可以使用地图和加入收集器
Map<String,String> map = new LinkedHashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
String text = map.entrySet().stream()
.map(e -> e.getKey() + ":" + e.getValue())
.collect(Collectors.joining(","));
System.out.println(text);
打印
key1:value1,key2:value2,key3:value3
BTW我不会使用String.format()如果可以避免它,因为它可能比字符串连接慢得多。
答案 1 :(得分:7)
Map<String, String> map = ...;
String result = map.entrySet().stream()
.map(e -> String.join(":", e.getKey(), e.getValue()))
.collect(Collectors.joining(","));