Gravar par de valores... o que recomendam

9 respostas
T

Estou criando um programa aonde irei precisar armazenar um par de valores ou seja… <x,1> queria saber uma estrutura legal que faça pesquisa rápida… E se possível um exemplo bem simples pra entendimento!

Obrigado!

9 Respostas

H

Use HashMap!

T

hamilton me da um exemplo de como se grava dois valores com hashmap?

valeu!

rolemberg

Neste caso não se encaixa array bidimenseonal???

cassio

Para pesquisa o HashMap tem melhor desempenho, pelo menos desde que o método hashCode() da classe dos objetos armazenados no HashMap esteja corretamente implementado.

T

Para pesquisa o HashMap tem melhor desempenho, pelo menos desde que o método hashCode() da classe dos objetos armazenados no HashMap esteja corretamente implementado.

eu queria umas dicas! pra gavar um par de valores saca… pois com um valor eu ja fiz!

valeu!

Bravox
Titôsca:
haamilton:
Use HashMap!

hamilton me da um exemplo de como se grava dois valores com hashmap?

valeu!

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


public class TestMap {
	
	public static void main(String[] args) {
			
		Map< String, Object> map = new HashMap<String, Object>();
		
		// chaves
		String key_1 = "key_1";
		String key_2 = "key_2";
		
		// objetos 
		Object obj_1 = new Object();
		Object obj_2 = new Object();
		
		
		// add no mapa 
		map.put(key_1, obj_1);
		map.put(key_2, obj_2);
		
		
		// recuperando do mapa 
		System.out.println( map.get(key_1));
		System.out.println( map.get(key_2));
		
	}
}
cassio

Para pesquisa o HashMap tem melhor desempenho, pelo menos desde que o método hashCode() da classe dos objetos armazenados no HashMap esteja corretamente implementado.

eu queria umas dicas! pra gavar um par de valores saca… pois com um valor eu ja fiz!

valeu!

  1. Cria uma classe que guarde esses dois valores e implemente o método hashcode()
public class BlaBla {
   private int valor1;
   private int valor2;

   public BlaBla(int valor1, int valor2) {
      this.valor1 = valor1;
      this.valor2 = valor2;
   }

   //getters e setters

   public int hashCode() {
      //...
   }
}
  1. Pesquise sobre como fazer a implementação do hashCode da maneira correta

  2. Crie um HashMap que guarde elementos dessa sua classe

Map mapa = new HashMap<Integer, BlaBla>();
  1. Insira seus objetos no seu HashMap e seja feliz
BlaBla blabla = new BlaBla(2, 4);
BlaBla bleble = new BlaBla(5, 10);
mapa.put(blabla.hashCode(), blabla);
mapa.put(bleble.hashCode(), bleble);
T

Cassio matou a pau cara! Deu certinho!

Agora outra dúvida…

Eu tenho um classe interpretador que possui meu map com os valores associados!

só que tenho uma classe ComandoRead que precisa acessar os valores que estão no map… Só que como ela é uma classe que herda da superclasse Comando que tem um metodo abstrato executa(); e utilizo ele pra rodar os comandos e assim deixar meu programa mais generico possivel…

pois concorda que quando usar o polimorfismo armezanndo os elementos das classes que herdam de Comando e invocando o metodo executa ele irá executar o da subclasse correto??

agora queria saber como irei passar esses valores pra minha classe sem modificar e perder essa generalização que consegui…

cassio

Titôsca:
Cassio matou a pau cara! Deu certinho!

Agora outra dúvida…

Eu tenho um classe interpretador que possui meu map com os valores associados!

só que tenho uma classe ComandoRead que precisa acessar os valores que estão no map… Só que como ela é uma classe que herda da superclasse Comando que tem um metodo abstrato executa(); e utilizo ele pra rodar os comandos e assim deixar meu programa mais generico possivel…

pois concorda que quando usar o polimorfismo armezanndo os elementos das classes que herdam de Comando e invocando o metodo executa ele irá executar o da subclasse correto??

agora queria saber como irei passar esses valores pra minha classe sem modificar e perder essa generalização que consegui…

Não sei se entendi direito o que você quis dizer, mas se a classe Comando possui o método abstrato executa(), cada classe que herda de Comando terá sua própria implementação deste método.
Coloca o código resumido dessas suas classes ai… não entendi quem recebe os valores…

Criado 14 de março de 2008
Ultima resposta 14 de mar. de 2008
Respostas 9
Participantes 5