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.
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.