Inserir ítens em um hashmap

4 respostas
aquilante

Pessoal muito boa tarde,

Eu tenho o seguinte trecho:

Grafo grafo = new Grafo();
        List<Map> result = new ArrayList<Map>();
        
        HashMap parms = new HashMap();
        parms.put("origem:", grafo.getOrigem());
        parms.put("destino:", grafo.getDestino());
        parms.put("arco:", grafo.getArco());
        parms.put("custo:", grafo.getCusto());
        result.add(parms);
        
        System.out.println("[" + parms + "]");

Dessa forma eu consigo acessar o conteúdo das variávei de meu hashmap, mas eu quero inserir dados, por exemplo via teclado. Qual seria a melhor forma de inserir valores e depois imprimi-los?

Eu tentei dessa forma mas retorna null:

Grafo saida = new Grafo();
String chave = JOptionPane.showInputDialog(null, "insira o Origem");
		
		if (chave.isEmpty()) {
			JOptionPane.showMessageDialog(null, "Origem vazia!");
		}
		saida = (Grafo)parms.get(chave);

        System.out.println("[" + saida + "]");

Vlw! :lol:

4 Respostas

julianoeustaquio
saida = parms.get(chave);

se por acaso não existir registro com a chave passada saida receberá null.

aquilante

Ainda continua o erro:

Grafo origem = new Grafo();
String chaveOrigem = JOptionPane.showInputDialog(null,
				"insira a Origem");
origem = (Grafo) parms.get(chaveOrigem); //tem q ser feito um cast, pois origem é do tipo Grafo
			
if (chaveOrigem.isEmpty()) {
JOptionPane.showMessageDialog(null, "Origem vazia!");
}

System.out.println("[ origem: " + origem + "]);

Dessa forma eu recebo como retorno: [ origem: Grafo@13c6641]

pq n recebo o valor passado em chaveOrigem?
Esse erro acontece pq eu faço o cast para Grafo?
Como eu posso resolver isso?

Vlw! :lol:

julianoeustaquio
Desculpa, na verdade o tipo de retorno do hash e aquilo que vc colocou nele por exemplo.
parms.put("origem:", grafo.getOrigem());
supondo que origem e String
String [code]_a = parms.get("origem:");
aquilante

Juliano,

Acho que eu n expliquei bem minha dúvida, mas vamo la! :lol:

Esse é o meu hash:

HashMap parms = new HashMap();
parms.put("origem:", grafo.getOrigem());
parms.put("destino:", grafo.getDestino());
parms.put("arco:", grafo.getArco());
parms.put("custo:", grafo.getCusto());
result.add(parms);
System.out.println("[" + result + "]");

Dessa forma eu acesso perfeitamente o conteúdo, que no momento é vazio.

[[{origem:=0, custo:=0, arco:=0, destino:=0}]]

Os valores são do tipo inteiro, estão declarados no bean Grafo.

O problema é qdo vou tentar inserir valores.

Grafo origem = new Grafo();
String chaveOrigem = JOptionPane.showInputDialog(null,
				"insira a Origem");
			
			if (chaveOrigem.isEmpty()) {
				JOptionPane.showMessageDialog(null, "Origem vazia!");
		}
origem = (Grafo) parms.get(chaveOrigem);

Grafo destino = new Grafo();
String chaveDestino = JOptionPane.showInputDialog(null,
				"insira o destino");

			if (chaveDestino.isEmpty()) {
				JOptionPane.showMessageDialog(null, "destino vazio!");
		}
destino = (Grafo) parms.get(chaveDestino);

Grafo arco = new Grafo();
String chaveArco = JOptionPane.showInputDialog(null, "insira o arco");

			if (chaveArco.isEmpty()) {
				JOptionPane.showMessageDialog(null, "arco vazio!");
		}
arco = (Grafo) parms.get(chaveArco);

Grafo custo = new Grafo();
String chaveCusto = JOptionPane.showInputDialog(null, "insira o custo");

			if (chaveCusto.isEmpty()) {
				JOptionPane.showMessageDialog(null, "custo vazio!");
		}
custo = (Grafo) parms.get(chaveCusto);

System.out.println("[ origem: " + origem + "]" + "[ destino: "
				+ destino + "]" + "[ arco: " + arco + "]" + "[ custo: " + custo
				+ "]");

ta me retornando tudo null. Não ta recebendo os valores passados via teclado.

[ origem: null][ destino: null][ arco: null][ custo: null]

Mais uma vez obrigado! :lol:

Criado 4 de março de 2008
Ultima resposta 4 de mar. de 2008
Respostas 4
Participantes 2