Maps em Java

Olá. Estou estudando arrays, lists, sets em Java e não consegui pegar muito bem a ideia de maps. Gostaria que alguém conseguisse me explicar. Agradeço caso seja possível.

Olá @Leonardo_Menegol, sou aluno, então vou te explicar de uma forma que vc entenda, mas com certeza surgiram pessoas com mais conhecimento que eu que poderão te dar respostas mais elaboradas e fundamentadas.

Com o Map vc terá duas informações, a chave e o valor, e tanto a chave como o valor poderam ser de qualquer tipo, seja ele um tipo primitivo ou um objeto.

A chave será o índice que fará referência a um único valor. Vc não terá chaves repetidas, mas poderá ter valores repetidos.

Exemplos validos de Maps:

A = { ( 3 ; 5 ) , ( 5 ; 9 ) , ( 7 ; 13 ) }
B = { ( “Primeiro” ; 10.5 ) , ( “Segundo” ; 4.9 ) , ( “Quarto” ; 1.0 ) }
C = { ( “X” ; 10 ) , ( “M” ; 1000 ) , ( “V” ; 5 ) }

Também são conhecidos por dicionários em outras linguagens.

Espero ter ajudado!

Antes de mais nada, a conjugação correta do verbo “surgir” para o que você deseja, “futuro do indivativo” é “surgirão”. “Surgirão pessoas com mais conhecimento”.

Vamos lá, o que você pensa quando alguém te fala em mapa? A maioria das pessoas pensa no google maps. Mas, a ideia básica é: algo que permite identificar caminhos, algo que ajuda a ir de/para algum lugar.

É este o pensamento que você deve ter. Um mapa (java.util.Map<K, V>) do java tem essa finalidade. A partir de uma coordenada (a chave) você chega aonde quer (o valor).
Mapas podem conter quaisquer tipos de objetos para chaves e para valores. String, Integer, Object, etc. Porém, quando você define que um objeto de Map terá aquela chave e aquele valor, apenas objetos daquele tipo de chave e do tipo de valor ou subtipos poderão ser utilizados.

Map<String, Integer> mapa = new HashMap<Sring, Integer>();

O mapa acima só aceita chaves que sejam String (a classe String não possui subclasses) e valores inteiros (Integer);

A forma de inserir elementos é dada através do método put (você coloca coisas no mapa, amarrando à chave).

mapa.put("um", 1);
mapa.put("100", 10);

E, para obter:

Integer valor = mapa.get("um");

Outro detalhe, como a chave precisa ser única, você nunca terá dois valores distintos para duas chaves iguais. O último valor inserido é o que permanece

mapa.put("10", 100);
mapa.put("10", 12345);//Este valor que fica na chave 10

Simples, não?

1 curtida

Sei sobre a conjugação correta do verbo, porém errei na hora de digitar. Obrigado!

3 curtidas