HashMap sinfining imkoniyatlarini namoyish qiluvchi korporativ tizimdan kod parchasi keltirilgan . va Xarita interfeysi . Kirish foydalanuvchi huquqlarini belgilashda.
/* № 10.7 misol: tekshirishda kollektsiyalardan foydalanish
tizimiga kirish: DemoSecurity . java */
import java.util.*;
umumiy sinf DemoSecurity {
umumiy statik void main(String[] args) {
O'ngni tekshiring . startUsing ("2041", " Bill G. ");
O'ngni tekshiring . startUsing ("2420"," Jorj B ."); / ^ boshqa foydalanuvchi qo'shing va kirishni tekshiring */
CheckRight.startUsing("2437", "Phillip K.");
CheckRight.startUsing("2041", "Bill G.");
}
}
Class CheckRight {
xususiy statik HashMap xaritasi = yangi HashMap(); public static void startUsing(
String identifikatori, String nomi) { if (canUse(id)){
xaritani qo'yish (id, ism); System.out.println(" kirish ruxsat berilgan "); }
boshqa {
System.out.println(" in kirish rad etildi "); }
}
umumiy statik mantiqiy canUse(String identifikatori) {
final int MAX_NUM = 2;// 2 ni 3 bilan almashtiring
intcurrNum = 0;
agar (!map.containsKey(id))
currNum = map.size(); qaytish currNum < MAX_NUM; }
}
Natija quyidagicha bo'ladi: kirishga ruxsat berilgan kirishga ruxsat berilgan kirishga ruxsat berilgan,
bir vaqtning o'zida faqat ikkita foydalanuvchi tizimga kirish huquqiga ega. Agar siz koddagi MAX _ NUM doimiy qiymatini o'zgartirsangiz 2 dan ortiq bo'lsa, yangi foydalanuvchi kirish huquqiga ega bo'ladi.
WeakHashMap klassi axlat yig'ish mexanizmiga ma'lumotnomasi dastur doirasidan tashqariga chiqqan kalit yordamida xaritadan qiymatlarni olib tashlash imkonini beradi .
LinkedHashMap sinfi ob'ektlarning xaritaga qo'shilish tartibini eslab qoladi va ikki marta bog'langan ro'yxatni hosil qiladi. Ushbu mexanizm faqat kesh xotirasi bilan ishlashda kartaning yuklanish koeffitsienti oshib ketgan taqdirdagina samarali bo'ladi.
Java 1.4 dan boshlab , IdentityHashMap klassi qo'shildi , uning asosiy ob'ekt xesh kodlari tizim tomonidan hisoblanadi . identityHashCode () ob'ektning o'zi tarkibidan hisoblangan oddiy hashCode () qiymatidan farqli o'laroq, xotiradagi ob'ekt manziliga asoslanadi .
Do'stlaringiz bilan baham: |