Generarea unui Java HashCode Corect

CUPRINS

Java HashCode este una dintre metodele pe care cele mai multe cap Generează programatori.

public boolean hashCode();

Metoda este utilizată în combinație cu metoda egală pentru a compara la nivelul afacerii atunci când două obiecte ale unei clase sunt identice. Implementarea egală este întotdeauna mult mai ușor de înțeles.

Java hashcode

Această metodă există pentru a îmbunătăți performanța Java atunci când compară două obiecte. Deoarece două obiecte au coduri de hash diferite, nu mai pot fi aceleași și este vorba despre o comparație simplă între numere întregi. Problemele apar asupra modului de a genera hashcodele, deoarece cadrul de colectare îl folosește pentru a proiecta structurile interne ale tipurilor de date abstracte. În exemplul următor, clasa persoanei cu metoda de suprascriere egală (suprascriere) este arătată astfel încât două obiecte să fie egale dacă numele și prenumele lor coincid. Metoda este mai mult sau mai puțin ușor de înțeles.

DIV ID = „03ED6AA41E”>

Eclipse Java Hashcode

Metoda de mai sus a fost generată cu refactoringurile Eclipse. În același mod, codul hash-cod poate fi generat.

public int hashCode() {final int prime = 31;int result = 1;result = prime * result+ ((apellidos == null) ? 0 : apellidos.hashCode());result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());return result;}

Această metodă nu mai este atât de simplă de înțeles. Acest lucru se datorează faptului că hashcodele trebuie să aibă o anumită variabilitate. Aceasta este, dacă toate obiectele generează același hashcode (), acest lucru nu va merita îmbunătățirea performanței în comparații, deoarece toate acestea generează aceeași și metoda egale va fi întotdeauna utilizată atunci când le efectuează.

Javahashcode

Pe cealaltă parte, dacă toate obiectele generează diferite hashcode, acesta va fi imposibil să le grupezi în diferite tipuri de colecții într-un mod optim.

javahashcodecorecto

Prin urmare, prin urmare, eclipsa este responsabilă pentru proiectarea propriului dvs. metodă hashcode prin intermediul Utilizarea numerelor prime. Cu toate acestea, există o altă opțiune mult mai elegantă și mai simplă de a le genera. Java API are o clasă de obiecte în pachetul de utilități care generează hashcodes.

@Override public int hashCode() { // TODO Auto-generated method stub return Objects.hash(nombre,apellidos); }

În acest mod vom uita problema că această metodă generează în programatori.

Alte articole conexe: Înțelegerea egali și hashcode, Java == vs este egal

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *