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.
To create an ArrayList of specific size, you can pass the size as argument to ArrayList constructor while creating the new ArrayList. Following the syntax to create an ArrayList with specific size. myList = new ArrayList<T>(N);
The ArrayList index starts at 0 just like arrays, but instead of using the square brackets [] to access elements, you use the get(index) to get the value at the index and set(index,value) to set the element at an index to a new value.
If its testing you can usually see the capacity using your favourite IDE debugger. I don't have the exact number, but 1.7 is usually the capacity growth size. So if you create an arraylist with 10 items, java will make it size 17.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With