たとえば、ArrayList
では、各項目が非常に大きく、リストのサイズがメモリのサイズを超えるのに十分な大きさになる可能性があります。このような状況でリストを拡大する戦略は何ですか?Javaリスト展開戦略
すべての返信いただきありがとうございます。私はリモート呼び出しによってオブジェクトのリストを受け取るというこのような問題に遭遇しました。リストの各オブジェクトはかなり大きく、リストのサイズは10000以上になることがあります。実行中にこのリストをどのようにメモリに保存するのだろうか。
List<BigItem> list = queryService.queryForList(params...);
各項目が非常に大きいという事実は、ArrayListを拡張することとはあまり関係ありません。 ArrayListが大きくなると、* references *の配列が拡張されるため、要素が何であっても常に同じ量のメモリによって拡張されます。メモリを消費するものは実際のオブジェクトがリストに追加されることです。それらのオブジェクトを多数作成する場合は、それらをリストや配列などのコレクションに入れるかどうかは関係ありません。ですから、今あなたの問題が何であるかがはっきりしていないので、あなたの質問をより詳細に説明してください。 – RealSkeptic
リストを展開しません。一度にすべてをメモリに保存しないように戦略を変更します。 – chrylis