Olá Pessoal,
cacei um exemplo de HashMap aqui no Guj, e tive alguns problemas antes mesmo da execução.
1ª Dúvida: O que significa esse código?:
public Map <String,Integer> getMap(){
return pessoas;
}
o código principal, que não consegui executar, é este: (será que tenho que extender alguma classe? Tem que estar dentro de um try/catch? Copiei o código e colei no Eclipse, mas ele diz (delete this tokens) bem em “pessoas.put(“João”,35);”.
importjava.util.HashMap;importjava.util.Map;publicclassTabelaHash{// Criando um HashMap usando generics: chave: String valor: Integer Map<String,Integer>pessoas=newHashMap<String,Integer>();//Inserindo dados no HashMap pessoas.put("João",35);pessoas.put("Marcos",49);//Consultando o HashMap IntegeridadeJoao=pessoas.get("João");IntegeridadeMarcos=pessoas.get("Marcos");// Excluindo dados do HashMap pessoas.remove("João");pessoas.remove("Marcos");// Verifica se existe algum João no HashMap booleanexisteJoao=pessoas.containsKey("João");// Verifica se existe alguem com 35 anos booleanexiste35=pessoas.containsValue(35);// Remove todos os itens do HashMap pessoas.clear();publicstaticvoidmain(String[]args){// TODO Auto-generated method stub}}
Você precisa é jogar tudo isso dentro de um método.
Você não pode escrever o código solto assim dentro da classe.
drsmachado
1- Trata-se de um getter que retorna o atributo map, da classe em questão, que é um objeto da classe Map.
2 - O que o Rodigo disse é verdade. Trate de colocar isso tudo em um método.
airmigjr
Caro drsmachado e rodrigo, muito obrigado pelas respostas.
Por gentileza, se puderem me explicar a sintaxe, pois e isso que não estou entendendo… Nunca vi um metodo com < >…
Rodrigo_Sasaki
bom, essa é a sintaxe dos tipos genéricos.
É complicado explicar, pois é um assunto até que complexo. O que você tem que entender é que o tipo que está definido entre os sinais < e > é o tipo que será contido na coleção. Ex:
List<String> list = new ArrayList<String>();Isso define uma lista que só pode conter Strings.
O mesmo vale para o HashMap, só que no caso, ele possui chave e valor, por isso é necessário definir os 2 tipos.
Se quiser se aprofundar mais, pesquise por Java Generics no Google.
airmigjr
Ah, ok Rodrigo, isso até era o que eu imaginava, mas não tinha certeza…
Mas agora surgiu outra dúvida: Eu entendo quando eu declaro um objeto e instancio a classe, como por exemplo:
JPaneljp;jp=newJPanel;
Estou dizendo de que tipo é o objeto jp e inicializando-o, correto?
Mas não entendi pq (naquele trecho de código ainda) eu declaro pessoas como Map, e inicializo-o como HashMap…
Qual a relação/diferença entre Map e HashMap, e pq n inicializo pessoas com o mesmo tipo que declaro?
1 [ ]
Airton
Qual o teu nível de java?
Pergunto pois você está mexendo com coisas que estão envoltas em uma série de conceitos bem “pesados” da OO.
Sugiro que você estude mais java básico, assim poderá entender o que cada uma destas coisas estão ali.