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