Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225

    [JAVA] PROBLEMA CON METODO equals()

    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!

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225
    Ho già risolto!
    GRAZIE LO STESSO!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.