ArrayList list = new ArrayList(); list.add(0, "0-element"); list.add(1, "1-element"); list.add(2, "2-element"); ArrayList list = new ArrayList(); list.add(1, "1-element"); // IndexOutOfBoundsException list.add(2, "2-element"); list.add(0, "0-element"); if (pos>=list.size()) list.add(element); else list.add(pos, element); public void add(int index, E element) { if (index > size || index < 0) throw new IndexOutOfBoundsException( "Index: "+index+", Size: "+size); ensureCapacity(size+1); // Increments modCount!! System.arraycopy(elementData, index, elementData, index + 1, size - index); elementData[index] = element; size++; } list.add("element1"); list.add("element2"); list.add("element3); Throws: IndexOutOfBoundsException - if the index is out of range (index < 0 || index > size()) List list = new ArrayList(); list.add("...");