title: ArrayList: insertion vs insertion at specified element
body: <p>Consider an Arraylist. Internally it is not full, and the number of elements inserted so far is known. The elements are not sorted.
  Choose the operations listed below that are fast regardless of the number of elements contained in the ArrayList. (In other words, takes only several instructions to implement).</p>
  
  <p>Insertion</p>
  
  <p>Insertion at a given index</p>
  
  <p>Getting the data from a specified index</p>
  
  <p>Finding the maximum value in an array of integers (not necessarily sorted)</p>
  
  <p>Deletion at the given index</p>
  
  <p>Replacing an element at a specified index</p>
  
  <p>Searching for a specific element</p>
  
  <p>I chose Insertion at specified index, Getting the data from a specified index, and replacing an element but answer key says Insertion.  As I usually understand it, in an ArrayList, the insert operation requires all of the elements to shift left.  If we did this at the beginning of the list, we would have $O(n)$ time complexity.  However, if we did it at the end, it would be $O(1)$.  </p>
  
  <p>My question comes down to: (1) what, if any, difference is there between insertion and insertion at specified index and (2) given this particular time complexity for insertion why is it considered "fast"</p>