多くのリストの実装には、コレクションの初期容量を指定するオプションがありますが、これはなぜCopyOnWriteArrayListには許可されていませんか?CopyOnWriteArrayListの初期容量
2
A
答えて
7
従来のArrayList
では、後でリストに追加される要素が増えるため、バッキングアレイでより多くの領域を確保するヒントが得られます。
CopyOnWriteArrayList
では、すべての(アトミック)書き込み操作で新しいバッキング配列が作成されます。現在のリストサイズよりも大きい配列を事前に割り当てることには意味がありません。なぜなら、そのスペースは決して使用されないからです。
+0
ありがとう、それは一般的に意味があります。私は、大規模なコレクションを扱う際に、より大きな容量を割り当てることでパフォーマンスをいくらか向上させることを望んでいました。明らかに、これはデータ構造の間違った選択(頻繁な書き込みのために) – vsnyc
+0
*明らかに、これは(頻繁な書き込みのために)使用するデータ構造の間違った選択だろう* - 絶対に正しい! –
関連する問題
- 1. Java 8 ArrayListの初期容量が壊れていますか?
- 2. IllegalArgumentException:u'requirement failed:Google DataProcのSparkで無効な初期容量 '
- 3. StringBuilderの最も効率的な初期容量サイズですか?
- 4. 初期容量の地図をどのようにディープコピーするのですか?
- 5. ConcurrentSkipListMapの初期容量を設定できないのはなぜですか?
- 6. 大容量の大容量ファイル
- 7. Spark GraphX:要件が失敗しました:無効な初期容量
- 8. CopyOnWriteArrayList(cowal)
- 9. カスタムクラス初期化用の軽量クラスローダー?
- 10. テストサーバーの容量
- 11. Java Mulithreaded CopyONWriteArrayList
- 12. LocalForageのストレージ容量
- 13. スウィフトコアのデータ容量
- 14. C#のスタック容量
- 15. コモンズコレクションバッファ容量
- 16. 初期ページのロード時にjQueryリモートタブの内容を初期化する
- 17. アプリの初期化時にタブの内容を初期化する方法
- 18. qgis netlogoインターフェイス容量
- 19. EC2スポットインスタンス容量プール
- 20. SlideToggle div内容量
- 21. 新しいコンパレータと指定された初期容量なしのPriorityQueueの作成方法?
- 22. コレクションオブジェクトの初期容量を決定する最善の方法は何ですか?
- 23. ArrayListからの削除で初期容量が重要なのはなぜですか?
- 24. なぜHashMapは初期容量が2の累乗であることを要求しますか?
- 25. ArrayListが指定した容量に初期化されないのはなぜですか?
- 26. okhttp3大容量ファイルのOutOfMemoryError
- 27. Linuxサーバーのディスク容量
- 28. キャッシュの容量計画
- 29. Railsは大容量のファイル
- 30. Swift - Intの格納容量
なぜあなたはそれが必要だと思いますか? –
私は毎回新鮮なコピーを与えるので操作が高価だと知っていますが、前にコンストラクタを注意深く見ていませんでした。この[回答](http://stackoverflow.com/a/39453595/2063026)でも、これは可能ではないと私は考えました。 'CopyOnWriteArrayList'は大規模なコレクションで動作する並列ストリームで使用するには非常に悪い選択です – vsnyc