Rumah > Java > javaTutorial > Kerja dalaman HashMap di Jawa

Kerja dalaman HashMap di Jawa

WBOY
Lepaskan: 2023-08-28 13:37:46
ke hadapan
1319 orang telah melayarinya

Kerja dalaman HashMap di Jawa

Fungsi 'hashCode' digunakan untuk mendapatkan kod cincang objek dalam Java. Ini adalah objek Objek superclass. Ia mengembalikan memori yang dirujuk oleh objek sebagai integer. Ia adalah fungsi asli, yang bermaksud kaedah tidak boleh digunakan secara langsung di Jawa untuk mendapatkan rujukan kepada objek.

Untuk meningkatkan prestasi HashMap, sila gunakan hashCode() dengan betul. Pada asasnya, fungsi ini digunakan untuk mengira baldi dan nilai indeks. Begini cara ia ditakrifkan -

public native hashCode()
Salin selepas log masuk

Sekarang kita menyebut "baldi", adalah penting untuk memahami maksudnya. Ia adalah elemen yang digunakan untuk menyimpan nod. Terdapat lebih daripada dua nod dalam baldi. Nod boleh disambungkan menggunakan struktur data senarai terpaut. Kapasiti peta hash boleh dikira dengan baldi dan faktor beban.

Capacity = number of buckets * load factor
Salin selepas log masuk

Fungsi "equals" digunakan untuk menyemak kesamaan antara dua objek. Ia juga diberikan oleh Objek superclass. Fungsi ini boleh ditindih dalam kelas tersuai dengan menyediakan pelaksanaan tersuai. Fungsi ini mengembalikan benar atau salah bergantung pada sama ada dua objek yang dipersoalkan adalah sama.

Jana nilai indeks supaya saiz tatasusunan tidak terlalu besar, sekali gus mengelakkan outOfMemoryException. Formula untuk mencari indeks tatasusunan ialah -

Index = hashCode(key) & (n-1) – Here n refers to number of buckets.
Salin selepas log masuk

Mari kita lihat contoh -

Contoh

Demonstrasi Langsung

import java.util.HashMap;
class hash_map{
   String key;
   hash_map(String key){
      this.key = key;
   }
   @Override
   public int hashCode(){
      int hash = (int)key.charAt(0);
      System.out.println("The hash code for key : " + key + " = " + hash);
      return hash;
   }
   @Override
   public boolean equals(Object obj){
      return key.equals(((hash_map)obj).key);
   }
}
public class Demo{
   public static void main(String[] args){
      HashMap my_map = new HashMap();
      my_map.put(new hash_map("This"), 15);
      my_map.put(new hash_map("is"), 35);
      my_map.put(new hash_map("a"), 26);
      my_map.put(new hash_map("sample"), 45);
      System.out.println("The value for key 'this' is : " + my_map.get(new hash_map("This")));
      System.out.println("The value for key 'is' is: " + my_map.get(new hash_map("is")));
      System.out.println("The value for key 'a' is: " + my_map.get(new hash_map("a")));
      System.out.println("The value for key 'sample' is: " + my_map.get(new hash_map("sample")));
   }
}
Salin selepas log masuk

Output

The hash code for key : This = 84
The hash code for key : is = 105
The hash code for key : a = 97
The hash code for key : sample = 115
The hash code for key : This = 84
The value for key 'this' is : 15
The hash code for key : is = 105
The value for key 'is' is: 35
The hash code for key : a = 97
The value for key 'a' is: 26
The hash code for key : sample = 115
The value for key 'sample' is: 45
Salin selepas log masuk

Kelas bernama "hash_map" mentakrifkan rentetan dan konstruk Ini ditindih oleh fungsi lain yang dipanggil "hashCode". Di sini, nilai kunci hashmap ditukar kepada integer dan kod hash dicetak. Seterusnya, fungsi "sama" ditindih dan menyemak sama ada kunci itu sama dengan kunci peta cincang. Demo Kelas mentakrifkan fungsi utama di mana tika baharu HashMap dicipta. Elemen ditambah pada struktur ini menggunakan fungsi "put" dan dicetak pada konsol.

Atas ialah kandungan terperinci Kerja dalaman HashMap di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan