Como posso popular um static HashMap de forma eficiente?

3 respostas
roberto_sc

Olá
tenho uma classe com um static HashMap<String,String> .
Queria popular esse map logo de início, então coloquei os put() na construtora. Tudo funciona, quando dou new ele popula o map e eu uso normalmente.

No meu código vou ter que dar new nessa classe o tempo todo, então não gostaria de executar os puts novamente. Não queria fazer um if (map.size() == 0) { put()… }

Como posso popular um static HashMap de forma eficiente?

3 Respostas

T

Em um bloco static. Exemplo bem “flower-power”:

class EverythingINeed {
    private static Map<String,String> english2portuguese = new HashMap<String,String>();
    static {
        english2portuguese.put ("love", "amor");
        english2portuguese.put ("money", "dinheiro");
        english2portuguese.put ("freedom", "liberdade");
        english2portuguese.put ("peace", "paz");
    }
    public EverythingINeed() {
    }
}
celso.martins

thingol:
Em um bloco static. Exemplo bem “flower-power”:

class EverythingINeed { private static Map<String,String> english2portuguese = new HashMap<String,String>(); static { english2portuguese.put ("love", "amor"); english2portuguese.put ("money", "dinheiro"); english2portuguese.put ("freedom", "liberdade"); english2portuguese.put ("peace", "paz"); } public EverythingINeed() { } }

Se eu tenho vários maps diferentes, continua sendo uma melhor abordagem popular no bloco static? Ou fica melhor modularizar em métodos privados e estáticos e do bloco static chamar esses métodos?

T

Celso, você entendeu direitinho o que deve ser feito. Crie vários métodos privados e estáticos e os chame no bloco “static”. Só mostrei assim (fazendo tudo no bloco “static”) por efeitos didáticos.

Criado 30 de março de 2009
Ultima resposta 31 de mar. de 2009
Respostas 3
Participantes 3