Sharadの答えに加えて:ファイルからの読み込み...
// would loved to use Integer, but it is immutable...
class Wrapper
{
public Wrapper(int value)
{
this.value = value;
}
public int value;
}
HashMap<String, Wrapper> counts = new HashMap<String, Wrapper>();
Scanner scanner = new Scanner(new File(fileName));
while(scanner.hasNext())
{
String token = scanner.next();
Wrapper count = counts.get(token);
if(count == null)
{
counts.put(token, new Wrapper(1));
}
else
{
++count.value;
}
}
scanner.close();
私は値がマップにすでにある場合は二回ハッシュ値を計算する必要がない、少しシャラドのアルゴリズムを変化させ、そしてジェネリックを使用してキャストする必要がなくなります。
ファイル内の文字列のみが必要な場合は、counts.keySet();
で取得します。
地図のキーはすでにセットに含まれているため、地図だけをセットにする必要はありません。 'Map'が必要です。ここで、単語を参照するキーは文字列であり、値はカウントである整数です。したがって、単語単位でファイルの単語を読み取り、キーマッピングがマップに存在しない場合は1の数でマップに単語を追加し、キーマッピングが存在する場合は1ずつ増やします。 –
dabadaba
ループ内の行を読み込みます。行内のすべての単語について、頻度テーブルでその数が増えます。 –
この整数はどのように返すことができますか?または私はそれを別の変数に格納して戻すべきですか? – sajaMega