[解決済み] なぜArrayListは初期容量で始まるのですか?
2022-04-26 05:54:24
質問
の通常のコンストラクタは
ArrayList
は
ArrayList<?> list = new ArrayList<>();
しかし、その初期容量のパラメータを持つオーバーロードされたコンストラクタも存在します。
ArrayList<?> list = new ArrayList<>(20);
を作成するとなぜ便利なのでしょうか?
ArrayList
というのも、最初の容量が決まっていれば、あとは好きなように追加できるからです。
解決方法は?
の大きさがあらかじめ分かっている場合は、その大きさに合わせたものを使用します。
ArrayList
は、初期容量を指定した方が効率的です。そうしないと、リストが大きくなるにつれて、内部配列の再割り当てを繰り返さなければならなくなります。
最終的なリストが大きければ大きいほど、再割り当てを回避することで時間を節約することができます。
とはいえ、プリアロケーションがない場合でも、挿入された
n
の後ろにある
ArrayList
は合計で
O(n)
時間です。言い換えれば、要素の追加は償却された定数時間操作である。これは、各再配置が配列のサイズを指数関数的に増加させることによって達成されます。
1.5
. このアプローチでは、総操作回数は
であることを示すことができる。
O(n)
.
関連
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] ArrayListの初期化を1行で行う。
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] HashSetの値を構造的に初期化する方法は?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
エラーの解決方法 jarfile XXX.jarにアクセスできません。
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
[解決済み] ToList()を呼び出すと、パフォーマンスに影響がありますか?