スキャナーを使用してドキュメントを検索し、単語が表示された回数をカウントし、その両方のアルファベット順のリストと、各単語のフォロー回数のサブリストを作成するために、どのAPIまたはコレクションを使用するのが最適か疑問に思っています。別の言葉で。
これはクラス用です。私はJavaとパッケージにまったく慣れていないので、正しい方向に向けてください。ただし、実際のコーディングのヒントは必要ありません。ありがとうございます。
でそのようなことができると思いますMap<String, Map<String, Integer>>
。基本的に、単語は、連続するすべての単語とその頻度 (つまり、出現回数) を含むマップに関連付けられています。したがって、次のようになります。
Map<String, Map<String, Integer>> frequencyTable = new HashMap<String, Map<String, Integer>>();
並べ替えのために、単語とその頻度を保持するクラスを作成できます。TreeSet
次に、コンパレータで a を使用(またはcompareTo
クラスに実装) して、順序付けを強制できます。次に、マップは次のようになります。
Map<String, TreeSet<Frequency>> frequencyTable = new HashMap<String, TreeSet<Frequency>>();
Frequency
は、文字列とその出現回数に関する情報を保持するクラスであると仮定します。ここでの唯一の難点は、頻度を更新する必要があるたびに単語を検索することです。これは、セットを反復処理する必要があるためです。
それが並べ替えに関するものかどうかを確認してください........
ここにいくつかのオプションがあります...
1 つの方法でのみ並べ替えたい場合は、Collections.sort(T t)をComparable インターフェイスと共に使用します。
Collection.sort(T t, Comparator c)を Comparator インターフェイスと共に使用して、複数の方法で並べ替えます。
一意性が重要な場合は、コンパレータで TreeSet を使用することもできます。