WeakHashMap — это Java-класс, который реализует интерфейс Map, похож на HashMap, но имеет специальное поведение при сборке мусора. Внутри представлен хеш-таблицей и позволяет использовать как null-ключи, так и null-значения.
Чтобы сделать WeakHashMap потокобезопасным, используй метод Collections.synchronizedMap():
Map<Key, Value> syncMap = Collections.synchronizedMap(new WeakHashMap<>());
WeakHashMap особенно полезен для реализации кэшей или временных маппингов, когда ты хочешь, чтобы записи автоматически очищались, когда ключи больше не используются приложением. Это помогает избежать утечек памяти в долгоживущих приложениях.
В отличие от обычного HashMap, где записи сохраняются, пока они остаются в коллекции, записи в WeakHashMap могут быть собраны сборщиком мусора, когда на ключ нет сильных ссылок вне мапы. Это делает его идеальным для сценариев, где тебе нужна автоматическая очистка без явного удаления.
WeakHashMap использует слабые ссылки для своих ключей, что означает, что записи могут быть удалены сборщиком мусора, даже если ключ на них ссылается где-то еще в приложении.
Новый — ещё не проверен сообществом
Вы