0

手元にたくさんの言葉があります。私がしなければならないことは、それらを保存して、すべての単語を数えることです。元のデータには重複する単語が含まれている可能性があります。まず、Set を使用したいので、異なる単語のみを取得することを保証できます。しかし、どうすれば彼らの時間を数えることができますか? 「賢い」アイデアを持っている人はいますか?

4

3 に答える 3

3

MultiSetGuava ライブラリから使用できます。

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multiset.html

于 2013-03-14T02:25:05.867 に答える
2

Map を使用してこの問題を解決できます。

String sample = " I have a problem here. I have a lot of words at hand. What I need to do is to save them and count every different word. The original data may contains duplicate words.Firstly, I want to use Set, then I can guarantee that I only get the different wrods. But how can I count their times? Is there someone having any clever idea?";
    String[] array = sample.split("[\\s\\.,\\?]");
    Map<String,Integer> statistic = new HashMap<String,Integer>();
    for (String elem:array){
        String trimElem = elem.trim();
        Integer count = 0;
        if(!"".equals(trimElem)){
            if(statistic.containsKey(trimElem)){
                count = statistic.get(trimElem);
            }
            count++;
            statistic.put(trimElem,count);
        }
    }
于 2013-03-14T02:40:51.167 に答える
1

おそらく、ハッシュを使用できます。Javaでは、HashMap(またはHashSet?)です。すべての単語をハッシュできます。その単語がハッシュされている場合は、それに関連付けられている値を1つ増やします。これがアイデアです。

于 2013-03-14T02:57:12.430 に答える