Array associativo?

Posso fazer um array onde o índice seria uma string , tipo como acontece em php?

Olá,

Em Java você pode ter algo semelhante, mas não com arrays. Experimente usar a classe java.util.Map. Quando você cria um map, você pode associar uma chave (que pode ser de qualquer tipo) a um valor (que também pode ser de qualquer tipo) e depois buscar o valor associado à determinada chave. Por exemplo:

//cria um map, onde chaves são do tipo String e valores são do tipo Integer
Map<String, Integer> map = new HashMap<String, Integer>();

//coloca dados no map
map.put("s1", 1);
map.put("s2", 2);
map.put("s3", 3);

//obtém o valor associado à chave "s2"
Integer i = map.get("s1");

Fazendo dessa forma é possível obter o comportamento desejado. A única diferença é que o acesso não é do tipo map[“s2”], mas continua sendo um acesso indexado.

Abraço!

paulo.marcelo n sei se entendi, mas existe o map que faz associação de chave/valor

por exemplo:

HashMap teste = new HashMap();
teste.put("chave", value.get(valor));

espero ter ajudado! :lol:

Vlwsssss

Um Map faz o mesmo trabalho a diferença é a sintaxe, vc não faz variavel[“chave”] e sim variavel.get(“chave”);

Com a vantagem de poder utilizar qualquer objeto como chave (não apenas strings) e vc pode escolher se vc quer utilizar uma HashTable, HashMap, TreeMap, LinkedHashMap… cada um possui uma particularidade que pode ser melhor para o problema que vc quer (algumas a leitura é mais rapida que a escrita – ideal para cache de objetos).

HashMap - tabela de índice calculado, ou tabela hash
HashTable - uma versão mais antiga do HashMap; evite seu uso em programas novos
LinkedHashMap - uma versão do HashMap que permite que você percorra a tabela pegando os elementos por ordem de inserção, ou por ordem de acesso.
TreeMap - uma tabela ordenada pela chave.

Eu normalmente costumo usar TreeMap em meus programas porque preciso percorrer ordenadamente as chaves, ou então LinkedHashMap. Dificilmente eu uso um HashMap puro; normalmente o ganho de desempenho não compensa a perda de funcionalidade. (Além disso odeio redefinir hashCode e equals :stuck_out_tongue: , mesmo tendo as ferramentas na própria IDE - Eclipse ou NetBeans.)

É que um HashMap “bagunça” os valores que são inseridos nele, o que pode ser meio confuso para depuração de programas, ou para explicar o que o programa faz para as outras pessoas que o usam.