Это общая тенденция, принятая в JCF - сохранить интерфейс минималистичным, если только это не делает некоторые функции чрезвычайно сложными для работы.Это причина, по которой у вас нет отдельных интерфейсов для семантики, таких как неизменяемые коллекции, коллекции фиксированного размера.
Относительно того, почему тогда предоставляется remove(Object)
(необязательно).невозможно безопасно удалить элемент из коллекции во время итерации по коллекции - нет ничего, что делает обязательным предоставление reset()
.
Опять же, почему существует отдельный ListIterator()
(предоставляющий такие методы, как previous()
и previousIndex()
) - при использовании интерфейса List
основной функциональностью при его использовании является возможность размещения элементов по индексу и возможность доступа к ним с порядком индекса, фиксированного или случайногопорядок.Это не относится к другим коллекциям. Отсутствие этого интерфейса для List
сделает очень трудным, если не невозможным, плавную работу со списком.