1

使用する必要がある特定の API はありますか? 誰かがそれを実装する方法を投稿してください。

任意の提案をいただければ幸いです。

4

2 に答える 2

5

これは、どのコレクションが適しているかの要件によって異なります。文字列のリストの場合は使用するjava.util.Listか、文字列のセットの場合は使用するjava.util.Setか、キーと値のペアでもある場合は使用しますMap

また、各インターフェースの実装も要件に固有です。

データ量について話している場合、次の 2 つのことが関係しています。

  1. パフォーマンス
  2. メモリー。

ArrayList の場合のパフォーマンスについての話 - 追加操作は償却された一定時間で実行されます。つまり、n 個の要素を追加するにはO(n)時間がかかります。他のすべての操作は (大まかに言えば) 線形時間で実行されます。定数係数は、LinkedList実装の係数と比較して低くなります。

ハッシュ関数がバケット間で要素を適切に分散すると仮定するHashSetと、基本操作 ( ) に対して一定時間のパフォーマンスも提供されます。add, remove, contains and size

HashMapO(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のように

于 2012-11-30T05:45:29.567 に答える
1

コンテキストと頻繁な操作に関する詳細情報がなければ、単純な文字列配列または組み込みの Java DB を使用するのが最善のようです。

于 2012-11-30T07:05:18.263 に答える