Ciao
non ho capito bene questa istruzione:
taglio è di tipo float.codice:public int hashCode(){ return String.valueOf(taglio).hashCode(); }
Perchè devo convertire in Stringa il valore di taglio e poi applicargli hashCode?
Ciao
non ho capito bene questa istruzione:
taglio è di tipo float.codice:public int hashCode(){ return String.valueOf(taglio).hashCode(); }
Perchè devo convertire in Stringa il valore di taglio e poi applicargli hashCode?
Non sei obbligato a farlo. Credo che lo sviluppatore abbia scelto questa strada poichè il valore di taglio è una discriminante forte fra due oggetti di quella classe.Originariamente inviato da Markus85
Ciao
non ho capito bene questa istruzione:
taglio è di tipo float.codice:public int hashCode(){ return String.valueOf(taglio).hashCode(); }
Perchè devo convertire in Stringa il valore di taglio e poi applicargli hashCode?
Il valore restituito da hashCode() deve rimanere lo stesso per diverse chiamate al metodo, se l'oggetto non è cambiato internamente. Allo stesso modo, la funzione hashCode() dovrebbe produrre risultati fortemente diversificati per valori molto vicini tra di loro (vedi le nozioni sulla funzione di hash). Dato che la classe String fornisce già una buona implementazione di una funzione di hash, lo sviluppatore ha semplicemente deciso di servirsene.
Puoi tranquillamente ridefinire la funzione hashCode() fornendo una tua implementazione, se ritieni che essa sia migliore di quella fornita dalla classe String.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza