Fala ai galera, estou com um duvida meio boba mas vamos la. Eu tenho que criar um classe chamada Produto cuje o código do produto não pode sé repetir, Alguém sabe como faço isso?
ps: Não estou usando banco de dados.
Se não me engano o HashMap não aceita duplicatas nela. Mas caso seja uma lista pequena, você pode ir vendo cada linha e comparando.
Provavelmente você vai armazenar isso em algum lugar.
A forma mais fácil de resolver isso é alterando (sobrescrevendo) o método equals.
O método equals é herdado por toda classe a partir da classe java.lang.Object, e, ao sobrescrever, você pode definir quais os critérios que determinam quando um objeto é igual ao outro.
Em geral, se você utiliza uma IDE, ela provê meios de criar automaticamente este métodos (junto com o hash). Mas, nada impede que você faça isso manualmente.
Se a questão que define um Produto repetido é, apenas, seu id, então você poderia fazer
@Override
public boolean equals(Object obj) {
Integer id = (Integer) obj;
return this.id.equals(id);
}
Ou alguma variação disso.
Aí você pode iterar sobre os itens do array/lista que você está utilizando e verificar se são iguais:
for(Produto p : produtos) {
if(produto.equals(p)) {
return true; //duplicado
}
}
return false;
Entendeu?