Sobes.tech
Junior — Middle

Quels sont les avantages d'utiliser WeakHashMap et dans quels cas l'utiliser?

sobes.tech IA

Réponse de l'IA

WeakHashMap est une implémentation de Map en Java, où les clés sont stockées à l’aide de références faibles (WeakReference). Cela signifie que si aucune référence forte à la clé n’existe dans le programme, elle peut être collectée par le ramasse-miettes, et l’entrée correspondante sera automatiquement supprimée du map.

Avantages:

  • Permet de créer des caches ou des structures associatives qui n’empêchent pas la collecte des clés.
  • Évite les fuites de mémoire lorsque les clés ne sont plus nécessaires, mais que des références à elles restent dans le map.

Applications:

  • Caching de données, où les clés sont des objets à durée de vie limitée.
  • Stockage de métadonnées liées à des objets, sans les maintenir en mémoire.

Exemple:

WeakHashMap<Object, String> cache = new WeakHashMap<>();
Object key = new Object();
cache.put(key, "value");

key = null; // La clé peut maintenant être collectée par le ramasse-miettes
// Après la collecte, l’entrée dans le cache disparaîtra

Ainsi, WeakHashMap est utile lorsque vous souhaitez que la carte ne fasse pas obstacle à la collecte des clés.