ウェブサイト上のすべての単語をHashMapに追加して、それらに何回出現するかのキーを割り当てるJavaプログラムを作成していますページ。例えば、私は言葉だけの "Hello、ジャワ、コーヒー、ジャワ" のページでそれを実行した場合、出力はHashMapに単語が何回表示されるか
のJavaのようになります。2 コーヒー:1 こんにちは:1
また、これは無視します私が含まれたくない特定の言葉。ここに私がこれまで持っているものがあります。
Map<String, Integer> found = new HashMap<>(); // (word,frequency)
Matcher match = Pattern.compile(word_pattern).matcher(content);
while (match.find()) {
// Get the net word in lowercase
String word = match.group().toLowerCase();
//If not the set of words to ignore, add to the found Map
if(!ignore.contains(word))
found.put(word, );
}
System.out.println(found);
}
2番目のパラメータintは、単語をHashMapに追加する前に計算する必要があります。
found.put(word, int );
しかし、O(nlogn)時間を保持している間に単語の出現をどのくらい正確に追加するのかは不明です。
HashMapのは、O(N)償却する必要があります。私はストリームを使用しますが、あなたはJava 8を持っていますか? –
なぜ、単にカウンタを作成し、 'found.put(word、counter);を実行しないでください。ループのたびにカウンタをインクリメントします。新しい単語に出会ったらリセットしてください。 – brso05
@PeterLawrey私はあなたが念頭に置いている解決策が不思議です。投稿してもいいですか? – shmosel