Ko’rib turganimizdek bitta qiymatga bir-nechta kalitlar mos kelishi mumkin. Ammo kalitlar takrorlanmasligi lozim Hashtable sinfi kalitlarni qiymatlar bilan taqqoslaydigan xesh jadvalini amalga oshiradi. Har qanday null bo'lmagan obyekt kalit yoki qiymat sifatida ishlatilishi mumkin. Obyektlarni heshtableda muvaffaqiyatli saqlash va olish uchun kalit sifatida ishlatiladigan obyektlar hashCode usuli va tenglar usulini qo'llashi kerak.
Hashtable
Hashtable sinfi kalitlarni qiymatlar bilan taqqoslaydigan xesh jadvalini amalga oshiradi. Har qanday null bo'lmagan obyekt kalit yoki qiymat sifatida ishlatilishi mumkin. Obyektlarni heshtableda muvaffaqiyatli saqlash va olish uchun kalit sifatida ishlatiladigan obyektlar hashCode usuli va tenglar usulini qo'llashi kerak.
Hashtable ko’rinishida yoziladi
U HashMap-ga o'xshaydi, lekin sinxronlashtiriladi.
Hashtable kalit/qiymat juftligini xesh jadvalida saqlaydi.
Hashtable-da biz kalit sifatida ishlatiladigan obyektni va biz ushbu kalit bilan bog'lanmoqchi bo'lgan qiymatni belgilaymiz. Keyin kalit xeshlanadi va natijada olingan xesh-kod qiymat jadvalda saqlanadigan indeks sifatida ishlatiladi.
Hashtable sinfining dastlabki standart sig'imi 11, loadFactor esa 0,75.
HashMap hech qanday ro'yxatga olishni ta'minlamaydi, Hashtable esa tez ro'yxatga olishni ta'minlaydi.
K - ushbu xaritada saqlanadigan kalitlar turi
V - ko'rsatilgan qiymatlar turi
Parametrlar turi:
Hashtable yaratishning turli usullari mavjud. Hashtable yaratishning turli usullari mavjud. 1. Hashtable(): Bu standart yuklanish koeffitsienti 0,75 va boshlang'ich sig'imi 11 bo'lgan bo'sh xesh-jadval yaratadi. Hashtable ht = new Hashtable();
Hashtable ht1 = new Hashtable<>();
Hashtable ht2 = new Hashtable();
ht1.put(1, "one");
ht1.put(2, "two");
ht1.put(3, "three");
ht2.put(4, "four");
ht2.put(5, "five");
ht2.put(6, "six");
System.out.println("Mappings of ht1 : " + ht1);
System.out.println("Mappings of ht2 : " + ht2);
Do'stlaringiz bilan baham: |