Saltar al contenido

Limitar el tamaño máximo de un HashMap en Java

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *