Аналогично, юзаю только Set.. но вполне представляю случай использования Мапов, когда тебе хочется использовать объект как ключ. Например у нас есть множество классов, а в какой-то другой структуре мы хотим считать сколько экземпляров того или иного класса у нас было создано.
{
[ClassA]: 5,
[ClassB]: 6
}Почему не хранить это в самом объекте класса(фунция-конструктор).. ну всякое бывает..
*Слабые множества/мапы* это уже сложнее.. суть в том, что в ходе исполнения нашего кода, создается множество различных объектов, под них выделяется память, но что делать, если нам объект уже не нужен? С ненужными объектами разбирается сборщик мусора...
Теперь представим что у нас есть мапа в которую мы что-то складываем, ключами являются объекты, теперь объект так же являющийся ключем стал бесполезен. Ссылок на него нет, но сборщик в обычной ситуации не сможет его удалить из памяти по причине того что на него есть си
льная ссылка из мапы. Проблему решают эти структуры с сл
абыми ссылками, если на объект имеется только одна ссылка из такой мапы он будет удален сборщиком.