Интерфейс List описывает упорядоченный список. Элементы списка пронумерованы, начиная с нуля и к конкретному элементу можно обратиться по целочисленному индексу. Интерфейс List является наследником интерфейса Collection, поэтому содержит все его методы и добавляет к ним несколько своих:
add(int index, Object item) – вставляет элемент item в позицию index, при этом список раздвигается (все элементы, начиная с позиции index, увеличивают свой индекс на 1);
get(int index) – возвращает объект, находящийся в позиции index;
indexOf(Object obj) – возвращает индекс первого появления элемента obj в списке;
lastIndexOf(Object obj) – возвращает индекс последнего появления элемента obj в списке;
add(int index, Object item) – заменяет элемент, находящийся в позиции index объектом item;
subList(int from, int to) – возвращает новый список, представляющий собой часть данного (начиная с позиции from до позиции to-1 включительно).
На рисунке 2 красным выделены интерфейсы, зеленым – абстрактные классы, а синим готовые реализации.
Между интерфейсом и конкретной реализацией коллекции существует несколько абстрактных классов. Это сделано для того, что бы вынести общий функционал в абстрактный класс, таким образом реализовать повторное использование кода.
Рисунок 2