2012-09-27 3 views
5

私はDTOオブジェクトから多数のコレクションを返していますが、誰かが私を正しい方向に向けることができるのだろうかと思っていました。どんなタイプのコレクションでもできますが、どのオブジェクトが多数のオブジェクトを返すタスクに最適かわかりません。多数のDTOを取得するための最速のJavaコレクションは何ですか?

これはスレッディングなどに基づいて変更できることは知っていますが、少なくとも一般的なガイダンスとベンチマークを探しています。また、私は標準のJavaコレクション(サードパーティのライブラリはありません)にとどまることが求められます。

+0

DTOは一意ですか? – RNJ

+0

はい。すべてのDTOは一意になります。 – JoshC13

+2

配列またはArrayList – irreputable

答えて

3

irreputableは次のように述べています。単純なコレクションが必要な場合、ArrayListは、システム関数を使用して定義が高速な配列に基づいているため、良好に動作するはずです。

初期容量をより高い値に設定すると(大きい番号とは何か分かりません)、インクリメンタルな再割り当ての量が減るため、より高速になります。

他のコレクションには、ハッシュコードの検索や同期化などのオーバーヘッドがあります。

2

ArrayListが正しいサイズで初期化されています(追加するDTOの数または上限を知っている場合は、Collectionです)。初期化時にサイズを設定することで、内部配列のサイズを変更する必要がなくなります。これはゴミを生成する操作です。実際には低レベルであり、サイズ変更が必要な場合は手作業で管理する必要がある配列(つまり、ArrayListがあなたのために行うもの)を直接使用する方が良いでしょう。

事前サイズのArrayListを作成するには、ArrayList(int capacity)コンストラクタを使用します。

関連する問題