Te sugerimos que revises esta solución en un entorno controlado antes de enviarlo a producción, saludos.
Solución:
Podría crear una nueva clase como esta para limitar el tamaño de un HashMap:
public class MaxSizeHashMap extends LinkedHashMap
private final int maxSize;
public MaxSizeHashMap(int maxSize)
this.maxSize = maxSize;
@Override
protected boolean removeEldestEntry(Map.Entry eldest)
return size() > maxSize;
A veces más simple es mejor.
public class InstrumentedHashMap implements Map
private Map map;
public InstrumentedHashMap()
map = new HashMap();
public boolean put(K key, V value)
if (map.size() >= MAX && !map.containsKey(key))
return false;
else
map.put(key, value);
return true;
...
La solución simple suele ser la mejor, así que use hashmap inmodificable o inmutable.
Si no puede cambiar la cantidad de elementos, el tamaño será fijo, problema resuelto.
Si te ha sido útil nuestro post, sería de mucha ayuda si lo compartieras con más juniors así nos ayudas a difundir nuestra información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)