Method Hashcode() Pada Class String
Method int hashCode() pada class String akan mengembalikan instruksi hash dari string tersebut dalam bentuk Integer. Kode hash pada objek String ini dikomputasi sebagai:
Dimana :
Method ini merupakan method default dan tidak mendapatkan parameter apapun.
Perlu diketahui pada umumnya, jikalau dua objek String equal dikala diuji dengan method equals() maka nilai nilai hash code-nya juga akan sama.
Contoh:
Hash code string1 yakni -171848644
Hash code string2 yakni -171848644
Hash code string3 yakni -171848644
Apakah string1 dan string 2 equal dan nilai hash code-nya sama? true
Apakah string1 dan string 3 equal dan nilai hash code-nya sama? true
Walaupun demikian, memakai method hashCode() tidak disarankan untuk menguji dua string tersebut equal atau tidak, alasannya yakni sanggup saja kedua string itu tidak equal namun mempunyai nilai hash code yang sama.
Contoh:
Output:
Hash code string1 yakni 45721201
Hash code string2 yakni 45721201
Apakah string1 dan string 2 equal? false
Apakah nilai hash code string1 dan string 2 sama? true
Oleh alasannya yakni itulah tidak disarankan untuk mengecek equality dari dua objek String memakai method hashCode().
s[0]*31^(n - 1) + s[1]*31^(n - 2) + ... + s[n - 1]
Dimana :
- s[i] yakni abjad dari string
- n yakni panjang (length) dari string
- ^ yakni eksponen
Method ini merupakan method default dan tidak mendapatkan parameter apapun.
Perlu diketahui pada umumnya, jikalau dua objek String equal dikala diuji dengan method equals() maka nilai nilai hash code-nya juga akan sama.
Contoh:
public class Test_hashCode { public static void main(String [] args){ String string1 = ""; String string2 = ""; String string3 = new String(""); /** Mengetahui nilai hash code masing-masing string */ int hashString1 = string1.hashCode(); int hashString2 = string2.hashCode(); int hashString3 = string3.hashCode(); /** Memeriksa jikalau string equal dengan method equals(), maka hash code-nya juga sama */ boolean cek1 = string1.equals(string2) && string1.hashCode() == string2.hashCode(); boolean cek2 = string1.equals(string3) && string1.hashCode() == string3.hashCode(); /** Menampilkan hasil pengecekan */ System.out.println("Hash code string1 yakni " + hashString1); System.out.println("Hash code string2 yakni " + hashString2); System.out.println("Hash code string3 yakni " + hashString3); System.out.println(); System.out.println("Apakah string1 dan string 2 equal dan nilai hash code-nya sama? " + cek1); System.out.println("Apakah string1 dan string 3 equal dan nilai hash code-nya sama? " + cek2); } }Output :
Hash code string1 yakni -171848644
Hash code string2 yakni -171848644
Hash code string3 yakni -171848644
Apakah string1 dan string 2 equal dan nilai hash code-nya sama? true
Apakah string1 dan string 3 equal dan nilai hash code-nya sama? true
Walaupun demikian, memakai method hashCode() tidak disarankan untuk menguji dua string tersebut equal atau tidak, alasannya yakni sanggup saja kedua string itu tidak equal namun mempunyai nilai hash code yang sama.
Contoh:
public class Test_hashCode { public static void main(String [] args){ String string1 = "0-42L"; String string2 = new String("0-43-"); /** Mengetahui nilai hash code masing-masing string */ int hashString1 = string1.hashCode(); int hashString2 = string2.hashCode(); /** Memeriksa jikalau string equal dengan method equals() */ boolean cek1 = string1.equals(string2); /** Memeriksa apakah nilai hash code string1 dan string2 sama */ boolean cek2 = string1.hashCode() == string2.hashCode(); /** Menampilkan hasil pengecekan */ System.out.println("Hash code string1 yakni " + hashString1); System.out.println("Hash code string2 yakni " + hashString2); System.out.println(); System.out.println("Apakah string1 dan string 2 equal? " + cek1); System.out.println("Apakah nilai hash code string1 dan string 2 sama? " + cek2); } }
Output:
Hash code string1 yakni 45721201
Hash code string2 yakni 45721201
Apakah string1 dan string 2 equal? false
Apakah nilai hash code string1 dan string 2 sama? true
Oleh alasannya yakni itulah tidak disarankan untuk mengecek equality dari dua objek String memakai method hashCode().
Belum ada Komentar untuk "Method Hashcode() Pada Class String"
Posting Komentar