„Java“ objekto „hashCode“ ()

„Java“ objekto metodas hashCode () grąžina maišos kodo vertę, susietą su objektu.

hashCode()Metodo sintaksė yra tokia:

 object.hashCode()

hashCode () parametrai

hashCode()Metodas nesiima jokių parametrų.

hashCode () Grąžinimo vertės

  • grąžina objekto maišos kodo vertę

Pastaba : maišos kodo vertė yra sveiko skaičiaus vertė, susieta su kiekvienu objektu. Jis naudojamas nustatyti objektų vietą maišos lentelėje.

1 pavyzdys: „Java“ objekto hashCode ()

 class Main ( public static void main(String() args) ( // hashCode() with Object Object obj1 = new Object(); System.out.println(obj1.hashCode()); // 1785210046 Object obj2 = new Object(); System.out.println(obj2.hashCode()); // 1552787810 Object obj3 = new Object(); System.out.println(obj3.hashCode()); // 1361960727 ) )

Pastaba : Objectklasė yra super klasė visoms „Java“ klasėms. Taigi, kiekviena klasė gali įgyvendinti hashCode()metodą.

2 pavyzdys: hashCode () su String ir ArrayList

 import java.util.ArrayList; class Main ( public static void main(String() args) ( // hashCode() with String String str = new String(); System.out.println(str.hashCode()); // 0 ArrayList list = new ArrayList(); System.out.println(list.hashCode()); // 1 ) )

Ankstesniame pavyzdyje mes galime iškviesti hashCode()metodą, norėdami gauti Stringir ArrayListobjekto maišos kodą .

Tai yra todėl, kad Stringir ArrayListklasės paveldi Objectklasę.

3 pavyzdys: Objekto „Lygus“ maišos kodo vertė

 class Main ( public static void main(String() args) ( // hashCode() with Object Object obj1 = new Object(); // assign obj1 to obj2 Object obj2 = obj1; // check if two objects are equal System.out.println(obj1.equals(obj2)); // true // get hashcode of obj1 and obj2 System.out.println(obj1.hashCode()); // 1785210046 System.out.println(obj2.hashCode()); // 1785210046 ) )

Ankstesniame pavyzdyje galime pamatyti, kad du objektai obj1 ir obj2 generuoja tą pačią maišos kodo vertę.

Taip yra todėl, kad du objektai yra lygūs. Remiantis oficialia „Java“ dokumentacija, du vienodi objektai visada turėtų pateikti tą pačią maišos kodo vertę.

Pastaba : Norėdami patikrinti, ar du objektai yra lygūs, naudojome „Java Object equals ()“ metodą.

Įdomios straipsniai...