Dúvida HashMap

7 respostas
airmigjr

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);”.

import java.util.HashMap;
import java.util.Map;

public class TabelaHash{

	// Criando um HashMap usando generics: chave: String valor: Integer  
	Map<String,Integer> pessoas = new HashMap<String,Integer>();  
	  
	//Inserindo dados no HashMap  
	pessoas.put("João",35);  
	pessoas.put("Marcos", 49);  
	  
	//Consultando o HashMap  
	Integer idadeJoao = pessoas.get("João");  
	Integer idadeMarcos = pessoas.get("Marcos");  
	  
	// Excluindo dados do HashMap  
	pessoas.remove("João");  
	pessoas.remove("Marcos");  
	  
	// Verifica se existe algum João no HashMap  
	boolean existeJoao = pessoas.containsKey("João");
	  
	// Verifica se existe alguem com 35 anos  
	boolean existe35 = pessoas.containsValue(35);  
	  
	// Remove todos os itens do HashMap  
	pessoas.clear();  
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

7 Respostas

Rodrigo_Sasaki

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:

JPanel jp;

jp = new JPanel;

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…

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

Qual a relação/diferença entre Map e HashMap, e pq n inicializo pessoas com o mesmo tipo que declaro?

1 [ ]
Airton

drsmachado

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:

JPanel jp;

jp = new JPanel;

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…

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

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.

airmigjr

Caro Rodrigo, obrigado pelas explanações. Acabei encontrando no próprio GUJ a resposta. Map é uma interface e HashMap uma classe que implementa essa interface.
http://www.guj.com.br/java/222821-qual-a-diferenca-entre-map-e-hashmap
De qq maneira, muito obrigado,

1 [ ]

Airton

Criado 5 de novembro de 2012
Ultima resposta 5 de nov. de 2012
Respostas 7
Participantes 3