使用する必要がある特定の API はありますか? 誰かがそれを実装する方法を投稿してください。
任意の提案をいただければ幸いです。
これは、どのコレクションが適しているかの要件によって異なります。文字列のリストの場合は使用するjava.util.List
か、文字列のセットの場合は使用するjava.util.Set
か、キーと値のペアでもある場合は使用しますMap
。
また、各インターフェースの実装も要件に固有です。
データ量について話している場合、次の 2 つのことが関係しています。
ArrayList の場合のパフォーマンスについての話 - 追加操作は償却された一定時間で実行されます。つまり、n 個の要素を追加するにはO(n)
時間がかかります。他のすべての操作は (大まかに言えば) 線形時間で実行されます。定数係数は、LinkedList
実装の係数と比較して低くなります。
ハッシュ関数がバケット間で要素を適切に分散すると仮定するHashSet
と、基本操作 ( ) に対して一定時間のパフォーマンスも提供されます。add, remove, contains and size
HashMap
O(1)
は、基本操作に対して一定時間のパフォーマンスを提供します( get and put
)。
大規模なコレクションがメモリを使い果たした場合、メモリについて話します。つまり、 を取得した場合OutOfMemoryExcaption
。次に、を渡してヒープ領域を増やす必要があります-Xmxn
。
-Xmx n
メモリ割り当てプールの最大サイズをバイト単位で指定します。この値は、2MB を超える 1024 の倍数でなければなりません。キロバイトを示す場合は文字 k または K を追加し、メガバイトを示す場合は m または M を追加します。デフォルト値は 64MB です。この値の上限は、Solaris 7 および Solaris 8 SPARC プラットフォームでは約 4000m、Solaris 2.6 および x86 プラットフォームでは 2000m からオーバーヘッド量を差し引いたものになります。-Xmx2048mのように
コンテキストと頻繁な操作に関する詳細情報がなければ、単純な文字列配列または組み込みの Java DB を使用するのが最善のようです。