^TiGeRShArK^
09-06-2005, 14:15
ho uno dei soliti problemi apparentemente semplici ma ke non si riesce a capire perchè non funzionano......
Allora:
In una classe OrdineKey avente solo due campi Stringa come dati (numOrdine e dataOrdine) ho implementato il metodo equals x vedere se un elemento è già presente in una collection ke usa i generics:
public boolean equals(Object that){
if ( this == that ) return true;
if ( !(that instanceof OrdineKey) ) return false;
OrdineKey thatOrdineKey = (OrdineKey)that;
return numOrdine==thatOrdineKey.numOrdine && dataOrdine==thatOrdineKey.dataOrdine;
}
Ora, finkè inserisco nella collezione degli oggetti ke creo al volo e faccio un controllo con il metodo contains non ci sono problemi....
però se uso il metodo contains x controllare se un oggetto è presente nella lista all'interno di un while non funziona una mazza.... pensa sempre ke l'oggetto non è presente....
Ora mi kiedo.... è possibile ke debba implementare anke il metodo hashCode????
ma allora perchè quando inserisco manualmente oggetti diversi nella lista ma con i valori dataOrdine e numOrdine uguali questi mi vengono riconosciuti correttamente come già presenti??????
Allora:
In una classe OrdineKey avente solo due campi Stringa come dati (numOrdine e dataOrdine) ho implementato il metodo equals x vedere se un elemento è già presente in una collection ke usa i generics:
public boolean equals(Object that){
if ( this == that ) return true;
if ( !(that instanceof OrdineKey) ) return false;
OrdineKey thatOrdineKey = (OrdineKey)that;
return numOrdine==thatOrdineKey.numOrdine && dataOrdine==thatOrdineKey.dataOrdine;
}
Ora, finkè inserisco nella collezione degli oggetti ke creo al volo e faccio un controllo con il metodo contains non ci sono problemi....
però se uso il metodo contains x controllare se un oggetto è presente nella lista all'interno di un while non funziona una mazza.... pensa sempre ke l'oggetto non è presente....
Ora mi kiedo.... è possibile ke debba implementare anke il metodo hashCode????
ma allora perchè quando inserisco manualmente oggetti diversi nella lista ma con i valori dataOrdine e numOrdine uguali questi mi vengono riconosciuti correttamente come già presenti??????