Atributo

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.

1 curtida

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?

1 curtida