Collection
– хранилище отдельных значений, Map
– хранилище ключ-значение. Отсюда разные методы этих интерфейсов. Если проще, разные сигнатуры методов put
и add
.Collection
в свою очередь делится на три основных группы, и соответствующих им интерфейса:🔘
List
– упорядоченные списки с возможностью содержания дубликатов и доступа по индексу (random access);🔘
Queue
– обычно FIFO-коллекции, предполагает добавление/удаление элементов с края. Интерфейс-наследник Deque
– двусвязная очередь;🔘
Set
– не обязательно упорядоченный набор уникальных (с точки зрения equals
) значений;HashMap
можно привести к виду Collection
вызвав например keySet()
, entrySet()
или values()
.Большой обзор фреймворка и сравнение эффективности коллекций можно найти в статье на хабре. Для разговора об эффективности нужно понимать что такое О-нотация. Другая статья содержит практические замеры быстродействия (осторожно, старая публикация, Java 6).