1. ホーム

[解決済み】ArrayListの初期サイズについて

2022-03-28 13:12:16

質問

ArrayListの初期サイズを設定するには、次のようにします。

ArrayList<Integer> arr=new ArrayList<Integer>(10);

ただし

arr.add(5, 10);

というのは、境界外例外が発生するからです。

割り当てたスペースにアクセスできないのであれば、初期サイズを設定することに何の意味があるのでしょうか?

add関数は次のように定義されています。 add(int index, Object element) ということで、インデックス10には追加していません。

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

配列リストのサイズと容量を混同しています。

  • その サイズ はリストの要素数です。
  • 容量 は、リストが内部構造を再割り当てすることなく収容できる要素の数です。

を呼び出すと new ArrayList<Integer>(10) を設定すると、リストの初期 容量 であり、サイズではありません。つまり,この方法で作成された配列リストは,最初は空っぽの状態から始まります.

配列リストに10個の要素を追加する方法として、ループを使用する方法があります。

for (int i = 0; i < 10; i++) {
  arr.add(0);
}

これで、インデックス0〜9の要素を変更できるようになりました。