code: public void add(final int index, final int element) {
  		addRangeCheck(index);
  
  		ensureSize(_size + 1);
  		arraycopy(
  			_data, index,
  			_data, index + 1,
  			_size - index
  		);
  		_data[index] = element;
  		_size++;
  	}
docs: Inserts the specified element at the specified position in this list.
  Shifts the element currently at that position (if any) and any subsequent
  elements to the right (adds one to their indices).
  
  @param index index at which the specified element is to be inserted
  @param element element to be inserted
  @throws IndexOutOfBoundsException if the index is out of range
  {@code (index < 0 || index > size())}