Junior — Middle
How is the addition of an element to an ArrayList performed in the worst-case scenario?
sobes.tech AI
Answer from AI
When adding an element to an ArrayList in Java, the worst-case scenario is as follows:
- Capacity check: If the internal array of the
ArrayListis full, its size needs to be increased. - Array expansion: A new larger array is created (usually 1.5 to 2 times bigger), and all elements are copied from the old array to the new one.
- Adding the element: The new element is placed into the expanded array.
Because copying all elements takes time O(n), where n is the number of elements in the list, the operation of expanding the array has linear complexity. Therefore, in the worst case, adding an element is a linear time operation.
Example:
ArrayList<Integer> list = new ArrayList<>(2);
list.add(1);
list.add(2);
// On the next addition, the internal array will expand
list.add(3); // Elements are copied to a new array here
Thus, although the average amortized complexity of adding is O(1), the worst-case complexity is O(n) due to the need to expand the internal array.