Usuando HashMap

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!

[code]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]);

}

}[/code]

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

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)
	}

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

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!

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!