Salve a tutti ragazzi.
Allora:
Io ho la seguente interfaccia :
Ho creato una classe CollezioneOrdAstratta che implementa l'interfaccia.codice:public interface CollezioneOrdinata<E extends Comparable<? super E>> extends Iterable<E> { int size(); void aggiungi(E elem); boolean rimuovi(E elem); boolean rimuoviIntervallo(E min, E max); boolean rimuovi(CollezioneOrdinata<E> c); boolean rimuoviIntervallo(CollezioneOrdinata<E> c, E min, E max); void aggiungi(CollezioneOrdinata<E> c); void aggiungiIntervallo(CollezioneOrdinata<E> l, E min, E max); CollezioneOrdinata<E> intervallo(E min, E max); }
Ho concretizzato il metodo rimuovi(E elem) che rimuove dalla collezione l'elemento ricevuto come parametro e nel caso non sia presente restituisce false.
Tralasciando gli altri metodi , L'esercizio mi dice di definire esplicitamente il metodo equals.codice:@Override public boolean rimuovi(E elem){ int count=0; Iterator<E> it = this.iterator(); while(it.hasNext()){ E elm = it.next(); if(!elm.equals(elem)) continue; it.remove(); count++; } return count>0; }//RIMUOVI
Ora siccome ho utilizzato il metodo equals nel metodo rimuovi per confrontare i due elementi ; volevo sapere se ho scritto correttamente l'equals
codice:@Override public boolean equals(Object o){ if(o==this) return true; if(o==null) return false; if(!(o instanceof CollezioneOrdAstratta)) return false; E elem = (E)o; return this.equals(elem); }

Rispondi quotando