javaarraylistindexoutofboundsexception

Initial size for the ArrayList


You can set the initial size for an ArrayList by doing

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

However, you can't do

arr.add(5, 10);

because it causes an out of bounds exception.

What is the use of setting an initial size if you can't access the space you allocated?

The add function is defined as add(int index, Object element) so I am not adding to index 10.


Solution

  • You're confusing the size of the array list with its capacity:

    When you call new ArrayList<Integer>(10), you are setting the list's initial capacity, not its size. In other words, when constructed in this manner, the array list starts its life empty.

    One way to add ten elements to the array list is by using a loop:

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

    Having done this, you can now modify elements at indices 0..9.