Ciao a tutti.
Mi sono imbattuto in un esercizio svolto in cui si fa l'override del metodo equals per confrontare due oggetti di tipo "Memoria".
Ogni oggetto Memoria contiene degli oggetti Variabile.
Non ho capito bene come il metodo verifica l'uguaglianza dei due oggetti:
il metodo contains itera l'oggetti this per vedere se contiene la variaile v.codice:@Override public boolean equals(Object o){ if(o==this) return true; if(o==null) return false; if(!(o instanceof Memoria)) return false; Memoria m = (Memoria)o; for(Variabile v : this) if(!m.contains(v)) return false; for(Variabile v : m) if(!this.contains(v)) return false; return true;
Questo equals non fa il confronto due volte?
Cioè basterebbe fare l confronto una sola volta :
O forse ho interpretato male io?codice:@Override public boolean equals(Object o){ if(o==this) return true; if(o==null) return false; if(!(o instanceof Memoria)) return false; Memoria m = (Memoria)o; for(Variabile v : this) if(!m.contains(v)) return false; return true;
Aiutatemi
CIAO

Rispondi quotando
