我想将 HashMap
的键和值连接到带有“:”的字符串,并将它们转换为列表。
例子:
Map<String,String> tags = new HashMap<>();
tags.put("k1","v1");
tags.put("k2","v2");
然后我要获取字符串
k1:v1,k2:v2
我的代码是:
private String transe(Map<String, String> tags) {
if (tags == null || tags.isEmpty()) {
return DEFAULT_STATUS_GROUP;
}
List<String> tagKVList = new ArrayList<>();
tags.forEach((key, value) -> tagKVList.add(String.join(":", key, value)));
tagKVList.sort((tag1, tag2) -> tag1.compareTo(tag2));
return tagKVList.stream().collect(Collectors.joining(","));
}
如何去掉局部变量tagKVList
,让代码更清晰?
最佳答案
您不需要中间的 List
。您可以Stream
entrySet
,map
每个条目到一个String
和collect
到一个 String
就像你已经做的那样:
return tags.entrySet().stream()
.map(e-> String.join(":", e.getKey(), e.getValue()))
.sorted()
.collect(Collectors.joining(","));
关于java - 将 HashMap 的键和值连接到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38137839/