単語の出現を 10,000 個のテキスト ファイルなどの複数のファイルに格納するハッシュマップを作成しました。次に、ハッシュマップからそれらを並べ替えて、上位 10 の単語を出力したいと考えました。ハッシュマップは次のように定義されます。
Hashtable <String, Integer> problem1Counter = new Hashtable<String, Integer> ();
ファイルを約 1000 に保持すると、次のような単純な並べ替えを使用して上位 10 語を取得できました。
String[] keysProblem1 = (String[]) problem1Counter.keySet().toArray(new String[0]);
Integer [] valuesProblem1 = (Integer[])problem1Counter.values().toArray(new Integer[problem1Counter.size()]);
int kk = 0; 文字列 ii = null;
for (int jj = 0; jj < valuesProblem1.length ; jj++){
for (int bb = 0; bb < valuesProblem1.length; bb++){
if(valuesProblem1[jj] < valuesProblem1[bb]){
kk = valuesProblem1[jj];
ii = keysProblem1[jj];
valuesProblem1[jj] = valuesProblem1[bb];
keysProblem1[jj] = keysProblem1[bb];
valuesProblem1 [bb] = kk;
keysProblem1 [bb] = ii;}}}
したがって、ハッシュテーブルに 553685 を超える値がある場合、上記の方法は機能しません。それで、誰でもそれらをソートするためのより良い方法を提案して示すことができますか? 私はJavaの初心者ですが、アクションスクリプトで働いていたので、少し快適でした. ありがとう。