首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否存在HashMap连接元素

是否存在HashMap连接元素
EN

Stack Overflow用户
提问于 2012-06-11 06:49:43
回答 3查看 9.4K关注 0票数 4

是否有一个简单的函数可以将所有元素和键值连接到一个字符串

代码语言:javascript
复制
Map<String, String> m = new HashMap<String, String>();
m.put("lebron", "james");
m.put("kevin", "durant");

m.join(",")应生成:"lebronjames,kevindurant“

我正在寻找一种使用guava或apache common (StringUtils) Java libs的更简单(不太冗长)的解决方案,而不是遍历地图

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-11 07:10:19

使用

代码语言:javascript
复制
Map<String, String> m = new HashMap<String, String>(); 
m.put("lebron", "james");
m.put("kevin", "durant");

Joiner.MapJoiner joiner = Joiner.on(",").withKeyValueSeparator("");
System.out.println(joiner.join(m));  // return lebronjames,kevindurant
票数 12
EN

Stack Overflow用户

发布于 2012-06-11 06:56:45

代码语言:javascript
复制
String mapString = m.toString();
String newStr = mapString.substring(1, mapString.length() - 1).replaceAll("=", "");

这取决于AbstractMap.toString()的行为。我从来都不习惯于依赖toString实现。

所以我更喜欢迭代这个列表。事实上,迭代过程也非常简短:

代码语言:javascript
复制
for (String key : m.keySet())
   newStr += key + m.get(key) + ",";
newStr = newStr.substring(0, newStr.length() - 1);

编辑任何你喜欢的StringBufferStringBuilder代码。

票数 3
EN

Stack Overflow用户

发布于 2015-07-21 10:40:14

在Java8中,如果使用ConcurrentHashMap

代码语言:javascript
复制
ConcurrentHashMap<String, String> m = new ConcurrentHashMap<>();
m.put("lebron", "james");
m.put("kevin", "durant");

String result = m.reduce(1, (k, v) -> (k + v), (r1, r2) -> r1 + "," + r2);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10972970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档