В соответствии с документами вы можете вставлять объекты в любую позицию в списке:
Пользователь этого интерфейса имеет точный контроль над тем, где в списке вставлен каждый элемент.
(источник: http://download.oracle.com/javase/6/docs/api/java/util/List.html)
Но следующая программа не работает с исключением IndexOutOfBoundsException:
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> myList = new ArrayList<String>();
myList.add(0, "derp");
myList.add(2, "herp");
for (String s : myList) {
System.out.println("Le string: " + s);
}
}
}
Это не помогает явно установить начальную емкость (что имеет смысл, поскольку значение по умолчанию равно 10).
Почему я не могу вставлять объекты в любую позицию, если его индекс меньше емкости? Является ли размер всегда равным количеству вставленных элементов?