Set - это последовательность уникальных значений. Реализация использует ту же
хеш-таблицу, что и Ds\Map, в которой значения используются
в качестве ключей, а связанные значения игнорируются.
Сильные стороны
Значения могут быть любого типа, включая объекты.
Поддерживает синтаксис массива (квадратные скобки).
Сохраняется порядок вставки.
Автоматически высвобождает память, когда количество элементов значительно уменьшается.
add(),
remove() и
contains() имеют сложность O(1).
Слабые стороны
Не поддерживает
push(),
pop(),
insert(),
shift() и
unshift().
get() имеет сложность O(n), если есть удалённые значения
в буфере, до значения, к которому происходит доступ. Иначе O(1).