Ciao!
Ho una classe ListNode che ha questi due metodi che utilizzano il metodo
equals().

codice:
public class ListNode implements List, Serializable {
     private Node node;  /** Riferimento ad un oggetto di classe Node;
                                   * è il primo nodo della lista. */
    
    /** Metodo che cancella un elemento dalla lista: ricerca l'elemento richiesto;
     *  se viene trovato, i riferimenti vengono cambiati in modo da escludere 
     *  l'elemento da cancellare. Se l'elemento non viene trovato, la lista non cambia.
     *  In ogni caso il chiamante non viene notificato.
     */
    public void remove(Object o) {
        if (!isEmpty()) {
            Node pred = node;
            Node tmp = node.next;
            
            if (node.info.equals(o)) node = node.next;
            else
                while(tmp != null)
                    if (tmp.info.equals(o)) {
                        pred.next = tmp.next;
                        return;
                    }
                    else {
                        pred = pred.next;
                        tmp = tmp.next;
                    }
        }
    }
    
        
    /** Metodo che dice se un elemento è nella lista. */
    public boolean contains(Object o) {
        Node tmp = node;
        while (tmp != null) {
            if (tmp.info.equals(o)) return true;
            tmp = tmp.next;
        }
        return false;
    }
    
}
NODE è fatta così:
codice:
class Node implements Serializable {
    Object info;
    Node next;   /** next è un riferimento ad un oggetto della classe stessa.*/

    public Node(Object o) {
        this(o, null);
    }
    
    public Node(Object o, Node n) {
        info = o;
        next = n;
    }
}
Io ho ridefinito il metodo equals() nella classe ClienteSocieta:
codice:
public class ClienteSocieta implements Serializable {
    protected String codice, nome, indirizzo, partitaIva, telefono;
   
    
    /** Metodo costruttore. */
    public ClienteSocieta(String cod, String nom) {
        codice = cod;
        nome = nom;
    }
                ....................................
                
                 .................................

    /** Ridefinizione del metodo equals(). */
    public boolean equals(Object o) {
        if(o instanceof ClienteSocieta) {
            ClienteSocieta c = (ClienteSocieta)o;
            if (((c.getNome()).equals(nome)) || ((c.getCodice()).equals(codice))) return true;
        }
        return false;
    }
    
}
Ci deve essere qualcosa che non va, perchè quando utilizzo i metodi remove() e contains() di una ListNode contenente oggetti ClienteSocieta non funzionano correttamente!
Qualcuno può aiutarmi a capire il perchè?
GRAZIE MILLE!