0

TreeMap を配列に変換する必要があります。誰かがそれがどのように行われたかを教えてもらえますか? キーと値の両方が必要です。各単語をテキスト ファイル内の頻度にマッピングしています。

出力は次のとおりです。

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}
4

2 に答える 2

2
    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();
于 2011-12-19T09:55:14.467 に答える
0

TreeMap を使用しないでください。Guava の を使用してくださいTreeMultiSet

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

ほぼ10年後に更新:

書き込みパスの負担がはるかに少ないため、MultiSet の方がこの仕事には適していると思いますが、マップ (TreeMap を含む) を使用してそれを行う Java 8+ バージョンを次に示します。

static String mapToArray(Map<String, Integer> map) {
    return map.entrySet()
              .stream()
              .map(e -> e.getKey() + "=" + e.getValue())
              .collect(Collectors.joining(", ", "{", "}"));
}
于 2011-12-19T09:44:21.893 に答える