首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将树映射键和值转换为数组

将树映射键和值转换为数组
EN

Stack Overflow用户
提问于 2011-12-19 17:43:01
回答 2查看 8K关注 0票数 0

我需要把一个TreeMap转换成一个数组,有谁能告诉我是怎么做的吗?我同时需要键和值。我正在将每个单词映射到文本文件中的频率

下面是输出:

代码语言:javascript
复制
Bypass Internet Censorship.txt

{about=1, administrators=1, ago=1, and=1, around=1, asking=1, at=2, blocked=1, by=1, com=1, device=1, either=1, filtering=1, freerk=1, get=1, helps=1, hope=1, i=1, long=1, not=1, or=2, remember=1, school=1, sites=1, so=1, some=1, someone=1, that=1, the=1, this=1, to=1, view=1, was=1, ways=1, web=1, were=1, work=1, www=1, zensur=1}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-19 17:55:14

代码语言:javascript
复制
    StringBuilder temp=new StringBuilder();

    for(Map.Entry<String,Integer> entry : treeMap.entrySet()) 
    {
      String key = entry.getKey();
      Integer value = entry.getValue();

      temp.append(key).append(" = ").append(value).append(", ");
    }

    //TODO remove the last comma

String result=temp.toString();
票数 2
EN

Stack Overflow用户

发布于 2011-12-19 17:44:22

不要使用TreeMap,使用芭乐的TreeMultiSet

代码语言:javascript
复制
String[] str = new String[treeMultiSet.size()];
int ct = 0;
for(MultiSet.Entry<String> entry : treeMultiSet.entrySet()){
   str[ct++] = entry.getElement() + "=" + entry.getCount();
}

近10年后的更新:

我仍然认为MultiSet更适合这项工作,因为写入路径要轻松得多,但这里有一个使用8+ (包括TreeMap)完成此任务的Java版本:

代码语言:javascript
复制
static String mapToArray(Map<String, Integer> map) {
    return map.entrySet()
              .stream()
              .map(e -> e.getKey() + "=" + e.getValue())
              .collect(Collectors.joining(", ", "{", "}"));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8559449

复制
相关文章

相似问题

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