[解決済み] ArrayList: サイズはどのように増加するのでしょうか?
2023-03-18 14:10:58
質問
Javaに関する基本的な質問です。
ArrayList
.
いつ
ArrayList
が宣言され、デフォルトのコンストラクタで初期化されると、10 個の要素のためのメモリ空間が作成されます。ここで、11 番目の要素を追加すると、どうなるでしょうか。新しいメモリ空間は、20(またはそれ以上)の要素容量で作成されるのでしょうか(これには、最初のメモリ位置から新しい位置に要素をコピーする必要があります)、それとも何か他のものでしょうか?
私は ここで . しかし、私は答えを見つけられませんでした。
知識を共有してください。 ありがとうございます。
どのように解決するのですか?
新しい配列が作成され、古い配列の内容がコピーされます。APIレベルではこれだけです。引用元 ドキュメント (を引用しています(私の強調)。
それぞれの
ArrayList
のインスタンスには容量があります。容量は、リストの要素を格納するために使用される配列のサイズです。これは、常にリストサイズと同じ大きさです。要素がArrayListに追加されると、その容量は自動的に大きくなります。 成長ポリシーの詳細は、要素を追加することが一定の償却時間コストを持っているという事実以上に指定されていません。
の具体的な実装で実際にどうなるかという点では、このように
ArrayList
の特定の実装 (例えば Sun のもの) で実際にどのように起こるかについてですが、彼らの場合、ソースで血なまぐさい詳細を見ることができます。しかしもちろん、特定の実装の詳細に依存することは通常良いアイデアではありません...。
関連
-
Javaジェネリックを1つの記事で
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] ArrayListの初期化を1行で行う。
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで「ArrayList<String>」を「String[]」に変換する。
最新
-
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問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
executeQuery()でデータ操作文が発行できない。解決方法
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?