ListとSetの性能とメモリ割り当ての比較
2023-09-04 13:13:35
質問
パフォーマンス、メモリ割り当て、ユーザビリティの観点から、ListとSetの比較を知りたいと思います。
オブジェクトのリストの一意性を維持する要件がなく、挿入順序も維持する必要がない場合、ArrayListとSortedSet/HashSetを互換的に使用できますか? リスト/セットの代わりに直接Collectionsクラスを使用することは良いことでしょうか?
追伸:私もjavaが提供するリストやセット固有の関数は必要ありません。 私が配列の代わりにリスト/セットを使用しているのは、それらが余分なプログラミングの努力なしに動的に成長することができるからだけです。
どのように解決するのですか?
順序を気にせず、要素を削除しないのであれば、このデータ構造で要素を検索する必要があるかどうか、そしてその検索をどの程度の速度で行う必要があるかに集約されます。
の中で値によって要素を見つけることは
HashSet
は
O(1)
. では
ArrayList
であれば、それは
O(n)
.
もし、コンテナを使って一意なオブジェクトの束を保存し、最後にそれらを(任意の順序で)反復処理するだけであれば、間違いなく
ArrayList
の方がよりシンプルで経済的であるため、より良い選択であると言えるでしょう。
関連
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] リストにおけるdel、remove、popの違いについて
-
[解決済み] リストとタプルの違いは何ですか?
-
[解決済み] リストを新規に作成せずにセットをリストに変換する
-
[解決済み] SetとListの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
セミコロン期待値エラー解決
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
Java基礎編 - オブジェクト指向
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
アクセス制限の解決方法: ---- in Java
-
switch case文のcaseの後の列挙定数は列挙型なし
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ
-
[解決済み] SetとListの違いは何ですか?