DTOオブジェクトから多数のコレクションを返していますが、誰かが私を正しい方向に向けることができるかどうか疑問に思っていました。どのタイプのコレクションでもかまいませんが、多数のオブジェクトを返すタスクに最適なコレクションはどれかわかりません。
これはスレッド化などに基づいて変更される可能性があることは知っていますが、少なくとも一般的なガイダンスとベンチマークを探しています。また、標準のJavaコレクション(サードパーティライブラリなし)内にとどまる必要があります。
DTOオブジェクトから多数のコレクションを返していますが、誰かが私を正しい方向に向けることができるかどうか疑問に思っていました。どのタイプのコレクションでもかまいませんが、多数のオブジェクトを返すタスクに最適なコレクションはどれかわかりません。
これはスレッド化などに基づいて変更される可能性があることは知っていますが、少なくとも一般的なガイダンスとベンチマークを探しています。また、標準のJavaコレクション(サードパーティライブラリなし)内にとどまる必要があります。
評判が悪いように:単純なコレクションが必要な場合、ArrayListは、System関数を使用して定義上高速な配列に基づいているため、優れたパフォーマンスを発揮するはずです。
初期容量をより高い値に設定すると(何を大きな番号と呼ぶかわからない)、増分再割り当ての量が減るため、さらに高速になります。
他のコレクションには、ハッシュコードの検索や同期化のビーイングなど、ある種のオーバーヘッドがあります。
正しいサイズで初期ArrayList
化されたもの(追加するDTOの数、または上限がわかっている場合)は、最も単純で最小のものCollection
です。初期化時にサイズを設定することで、内部配列のサイズを変更する必要がなくなります。これは、ガベージを生成する操作です。アレイを直接使用することをお勧めします。これは非常に低レベルであり、サイズ変更が必要な場合は手動で管理する必要があります(これがあなたに役立ちArrayList
ます)。
事前サイズ設定を作成するには、コンストラクターArrayList
を使用します。ArrayList(int capacity)