Delegate void Message


Assotsiativ massivlar (xaritalar)


Download 184.94 Kb.
bet11/11
Sana16.06.2023
Hajmi184.94 Kb.
#1516542
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
Amaliyot ishi Dasturlash texnologiyalari

Assotsiativ massivlar (xaritalar).
Map interfeysi xaritalash yoki boshqacha qilib aytganda lug'atni ifodalaydi, bunda har bir element kalit-qiymat juftligini ifodalaydi. Bunday holda, barcha kalitlar Map ob'ektida yagona bo'ladi. Bunday to'plamlar, agar biz kalitni - ob'ektning noyob identifikatorini bilsak, elementni topishni osonlashtiradi.
Shuni ta'kidlash kerakki, to'plamlarni ifodalovchi boshqa interfeyslardan farqli o'laroq, Map interfeysi To'plam interfeysini kengaytirmaydi.
Map interfeysining metodlari quyidagilarni o'z ichiga oladi:

  1. void clear(): to'plamni tozalaydi

  2. boolean containsKey(Object k): agar to'plamda k kalit bo'lsa, rost qiymatini qaytaradi

  3. boolean containsValue(Object v): agar to'plamda v qiymati bo'lsa, rostni qaytaradi

  4. Set> entrySet(): To'plamdagi elementlar to'plamini qaytaradi. Barcha elementlar Map.Entry obyektini ifodalaydi

  5. boolean equals (Object obj): agar to'plam obj parametri orqali o'tgan to'plam bilan bir xil bo'lsa, true qiymatini qaytaradi

  6. boolean isEmpty: agar to'plam bo'sh bo'lsa, true qiymatini qaytaradi

  7. V get(Object k): kaliti k bo'lgan ob'ekt qiymatini qaytaradi. Agar bunday element bo'lmasa, null qaytariladi.

  8. V getOrDefault(Object k, V defaultValue): kaliti k bo'lgan ob'ekt qiymatini qaytaradi. Agar bunday element bo'lmasa, defaultVlue qaytariladi.

  9. V put(K k, V v): k kaliti va v qiymati bilan yangi ob'ektni to'plamga qo'yadi. Agar to'plamda shunga o'xshash kalitga ega ob'ekt mavjud bo'lsa, u holda uning ustiga yoziladi. Qo'shilgandan so'ng, k kalitining oldingi qiymatini qaytaradi, agar u allaqachon to'plamda bo'lsa. Agar kalit hali to'plamda bo'lmagan bo'lsa, null qaytariladi.

  10. V putIfAbsent(K k, V v): agar kollektsiyada bir xil kalitli element bo'lmasa, k kaliti va v qiymatiga ega yangi ob'ektni to'plamga qo'yadi.

  11. Set keySet(): barcha displey tugmalari to'plamini qaytaradi

  12. Collection values(): barcha displey qiymatlari to'plamini qaytaradi

  13. void putAll(Map map): to'plamga xaritadagi barcha ob'ektlarni qo'shadi

  14. V remove(k ob'ekti): ob'ektni k kaliti bilan olib tashlaydi

  15. int size(): to'plamdagi elementlar sonini qaytaradi

Ob'ektni to'plamga qo'yish uchun put usulidan foydalaning va kalit bilan olish uchun get usulidan foydalaning. Map interfeysini amalga oshirish sizga kalitlar va qiymatlar to'plamini ham olish imkonini beradi. EntrySet() metodi esa Map.Entry obyektlari sifatida barcha elementlar to‘plamini qaytaradi.
Map.Entry umumiy interfeysi K tipidagi kalitga va V turdagi qiymatga ega ob'ektni ifodalaydi va quyidagi metodlarni belgilaydi:

  1. boolean equals(Object obj): Map.Entry interfeysini ifodalovchi ob'ekt joriy bilan bir xil bo'lsa, true qiymatini qaytaradi.

  2. K getKey(): displey obyektining kalitini qaytaradi

  3. V getValue(): displey ob'ektining qiymatini qaytaradi

  4. V setValue(V v): joriy ob'ekt qiymatini v ga o'rnatadi

  5. int hashCode(): berilgan obyektning xesh kodini qaytaradi

Map ob'ektlarini takrorlashda biz ob'ektlarning kalitlari va qiymatlari bilan ishlash uchun ushbu metodlardan foydalanamiz.


Barcha xaritalashlar uchun asosiy sinf AbstractMap abstrakt klassi bo'lib, u Map interfeysining ko'pgina metodlarini amalga oshiradi. Eng keng tarqalgan xaritalash sinfi HashMap bo'lib, u Map interfeysini amalga oshiradi va AbstractMap sinfidan voris bo'lib qoladi.
Sinfdan foydalanishga misol:
import java.util.*;
public class Program{
public static void main(String[] args) {
Map states = new HashMap();
states.put(1, "Germany");
states.put(2, "Spain");
states.put(4, "France");
states.put(3, "Italy");
String first = states.get(2);
System.out.println(first);
Set keys = states.keySet();
Collection values = states.values();
states.replace(1, "Poland");
states.remove(2);
for(Map.Entry item : states.entrySet()){
System.out.printf("Key: %d Value: %s \n", item.getKey(), item.getValue());
}
Map people = new HashMap();
people.put("1240i54", new Person("Tom"));
people.put("1564i55", new Person("Bill"));
people.put("4540i56", new Person("Nick"));
for(Map.Entry item : people.entrySet()){
System.out.printf("Key: %s Value: %s \n", item.getKey(), item.getValue().getName());
}
}
}
class Person{
private String name;
public Person(String value){
name=value;
}
String getName(){return name;}
}
Elementni qo'shish yoki almashtirish uchun qo'yish yoki almashtirish usuli, kalit bo'yicha qiymatini olish uchun esa get usuli qo'llaniladi. Xarita interfeysining boshqa usullari yordamida elementlarda boshqa manipulyatsiyalar ham amalga oshiriladi: iteratsiya, kalitlarni olish, qiymatlar, o'chirish.

Download 184.94 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling