Usuando HashMap

5 respostas
M

Amigos,
Estou começando a usar o JAVA.
Uma duvida minha, o seguinte. É com relação a HASHMAP.
EU soh aprendi a inserir um por um.... manualmente na lista.
Soh que no exemplo abaixo, o professor colocou a inserção de vários produtos, logo depois usou o método "adicionarProduto" para ir inserindo na lista.
Como faço para que esse metodo seja genérico? para ele ir inserindo qualquer tipo de produto?

Agradeço muito a ajuda de todos.

Abraços!

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

public class Compras {
	Map m = new HashMap();
	public boolean adicionaProduto(Produto p){
		
		Produto p = new Produto();		 
		p.setCodigo("P-1");
		p.setDescricao("CD");
		p.setPreco(0.79);
		m.put(p.getCodigo(), p);
	}
	
	public static void main(String args[]){
		
		Compras c = new Compras();
		Produto[] p = new Produto[3];
		
		p[0]= new Produto();
		p[0].setCodigo("P-1");
		p[0].setDescricao("CD");
		p[0].setPreco(1.20);
		c.adicionaProduto(p[0]);
		
		p[1]= new Produto();
		p[1].setCodigo("P-30");
		p[1].setDescricao("Papel");
		p[1].setPreco(15);
		c.adicionaProduto(p[1]);
		
		p[2]= new Produto();
		p[2].setCodigo("P-3");
		p[2].setDescricao("Cola");
		p[2].setPreco(3.25);
		c.adicionaProduto(p[2]);
		
}

}

5 Respostas

danieldomingues86

Olá,

Bem… vamos lá

Primeiramente o metodo adicionaProduto não vai compilar pois voce não especificou o retorno, voce precisa retornar alguma coisa desse metodo?

Porque voce cria uma novo produto e preenche ele dentro desse metodo cada vez que ele é chamado?

Abraços
Daniel

M

Ele soh vai retornar FALSE OU TRUE.
Nao quero que ele retorne nada…
Ele soh vai pegar os valores passados, e vai adicionar na lista do HASHMAP.
No lugar dos valores fixos “CD”, “0.79”, quero colocar uma variavel. para ele ler o que eu colocar la no main.

Agradeço a todos!

public boolean adicionaProduto(Produto p){
		
		Produto p = new Produto();		 
		p.setCodigo("P-1");
		p.setDescricao("CD");
		p.setPreco(0.79);
		this.cProduto.put(key, value)
	}
danieldomingues86

Olá,

Se voce não quer que retorne nada, então não pode retornar true ou false, pois isso é um tipo de retorno, voce precisa então usar o void.

Voce já tem os valores preenchidos no main, certo? seu objeto já está pronto para ser adicionado, sendo assim essas linhas dentro do metodo são desnecessárias.

Abraços
Daniel

M

Daniel,

no main, ele tem os set… blz!
Depois de setar todos os atributos, ele chama o metodo adicionarProduto.
Ou seja, eu nao voh precisar setar mais nada no metodo… soh irei usar o PUT, para inserir esses SETs na lista.

Agradeço a todos!

M

Jovens,

Consegui entender…
Os Sets já estão no MAIN… basta só pesquisar se o produto existe… se não existir… ele adiciona na lista.

Segue o codigo:

public boolean adicionaProduto(Produto p){
	boolean i = this.cProduto.containsValue(p.getCodigo()); 
		if (i == false) {
		this.cProduto.put(p.getCodigo(),p);
		return true;
		}
		return false;
	}

Obrigado a todos!

Criado 4 de junho de 2011
Ultima resposta 7 de jun. de 2011
Respostas 5
Participantes 2