Ciao DjPg87,
La soluzione è alquanto banale, nella Classe prodotto aggiungi il metodo equals, in modo da poter confrontare due oggetti "prodotto" :
codice:
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Prodotto other = (Prodotto) obj;
if (marca == null) {
if (other.marca != null)
return false;
} else if (!marca.equals(other.marca))
return false;
if (nome_prod == null) {
if (other.nome_prod != null)
return false;
} else if (!nome_prod.equals(other.nome_prod))
return false;
if (Double.doubleToLongBits(prezzo_unitario) != Double
.doubleToLongBits(other.prezzo_unitario))
return false;
if (quantità != other.quantità)
return false;
return true;
}
il metodo aggiungi prodotto a questo punto può essere implementato come segue :
codice:
public void aggiungiProdotto(Prodotto p) {
//Ritorna l'indice dell'oggetto contenuto, -1 se non presente
int indexOf = lista.indexOf(p);
if (indexOf != 1) {
lista.get(indexOf).incrementaQuantità();
} else {
lista.add(p);
}
}