معرفی hash code در جاوا

معرفی hash code در جاوا

hash code یک مقدار integer است که در جاوا مرتبط با هر object است. هدف اصلی ان تسهیل هش کردن در جداول hash است که توسط ساختار داده هایی مثل HashMap استفاده می شوند.

متد hashCode

در جاوا، مقدار hash code یک شی با فراخوانی متد hashCode روی آن شی به دست می آید. این متد به طور پیش فرض در کلاس Object پیاده سازی شده است و موجود است لذا در کلاس های تعریف شده توسط کاربر هم موجود است.

متد مقدار صحیح یکسان بر می گرداند (روی شی یکسان و یک نمونه از  application جاوا) به شرطی که هیچ داده ای که توسط equals() استفاده می شود اصلاح نشود.

زمانی که hashCode() روی دو شی مختلف فراخوانی شود (که مطابق با متد equals() برابر هستند) مقداری که بدست می آید یکسان است. البته اگر روی دو شی غیر برابر فراخوانی شود، لزوما مقادیر integer متفاوتی بر نمی گرداند.

قطعه کد نمونه از hash code در جاوا

قطعه کد زیر hash code های متغیرهای یکسان و مختلف را چاپ می کند.

class Hash{
    public static void main(String[] args){
        String a = "200";
        String b = "200";

        if(a.equals(b)){
            System.out.println("Equal variables:");
            System.out.println(a.hashCode() + "\n" + b.hashCode());
        }

        String c = "10";
        String d = "50";

        if(!c.equals(d)){
            System.out.println("\nUn-equal variables:");
            System.out.println(c.hashCode() + "\n" + d.hashCode());
        }
    }
}

 

منبع: 

https://www.educative.io/answers/what-is-a-hash-code-in-java

 

اشتراک گذاری