1. ホーム
  2. java

ListとSetの性能とメモリ割り当ての比較

2023-09-04 13:13:35

質問

パフォーマンス、メモリ割り当て、ユーザビリティの観点から、ListとSetの比較を知りたいと思います。

オブジェクトのリストの一意性を維持する要件がなく、挿入順序も維持する必要がない場合、ArrayListとSortedSet/HashSetを互換的に使用できますか? リスト/セットの代わりに直接Collectionsクラスを使用することは良いことでしょうか?

追伸:私もjavaが提供するリストやセット固有の関数は必要ありません。 私が配列の代わりにリスト/セットを使用しているのは、それらが余分なプログラミングの努力なしに動的に成長することができるからだけです。

どのように解決するのですか?

順序を気にせず、要素を削除しないのであれば、このデータ構造で要素を検索する必要があるかどうか、そしてその検索をどの程度の速度で行う必要があるかに集約されます。

の中で値によって要素を見つけることは HashSetO(1) . では ArrayList であれば、それは O(n) .

もし、コンテナを使って一意なオブジェクトの束を保存し、最後にそれらを(任意の順序で)反復処理するだけであれば、間違いなく ArrayList の方がよりシンプルで経済的であるため、より良い選択であると言えるでしょう。