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