Коллекции
Существует три главных интерфейса - List (список), Set (множество) и Map (отображение или ассоциативный массив).
List (список)
Применяется, когда имеет значение порядок следования. Коллекции, которые учитывают индекс (позицию). Списки знают, где хранятся их элементы. Сразу несколько элементов могут ссылаться на один объект.
Set (множество)
Используется, когда имеет значение уникальность. Коллекции, которые не допускают дублирования. Множества знают, содержат ли они объект. У вас никогда не может быть несколько элементов, ссылающихся на один и тот же объект (или на два идентичных объекта).
Map (отображение)
Применяется, когда нужно найти что-нибудь по ключу. Коллекции, в которых используются пары ключ - значение. Отображению известно значение, которое связано с данным ключом. У вас может быть два ключа, ссылающихся на одно и то же значение, но они не могут дублироваться. В качестве ключей, как правило, используются строковые имена (например, так создаются списки свойств имя/значение), но ключом также может выступать любой объект.