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?
Sei sobre a conjugação correta do verbo, porém errei na hora de digitar. Obrigado!