Sobre o uso do Singleton baseado em Enum para armazenar em cache objetos grandes (Java)

Existe alguma maneira melhor de armazenar em cache alguns objetos muito grandes, que só podem ser criados uma vez e, portanto, precisam ser armazenados em cache? Atualmente, tenho o seguinte:

public enum LargeObjectCache {  
    INSTANCE; 

    private Map<String, LargeObject> map = new HashMap<...>();

    public LargeObject get(String s) {  
        if (!map.containsKey(s)) {
            map.put(s, new LargeObject(s));
        }
        return map.get(s);
    }
}  

Existem várias classes que podem usar os LargeObjects, e é por isso que decidi usar um singleton para o cache, em vez de passar LargeObjects para cada classe que o usa.

Além disso, o mapa não contém muitas chaves (uma ou duas, mas a chave pode variar em diferentes execuções do programa). Portanto, há outro mapa mais eficiente para usar neste caso?

questionAnswers(2)

yourAnswerToTheQuestion