Sobes.tech
Junior

Java-da Map kolleksiyası və onun xüsusiyyətləri haqqında danışın.

sobes.tech Süni İntellekt

AI-dan cavab

Map — Java Collection Framework-də interfeysdir və "açar-dəyər" cütlərinin kolleksiyasını təmsil edir. Açarlar unikal, dəyərlər isə təkrarlana bilər.

Əsas xüsusiyyətlər:

  • Açar, müvafiq dəyərə giriş üçün istifadə olunur.
  • Eyni açar iki dəfə əlavə edilə bilməz. Mövcud açar əlavə edilməyə çalışıldıqda, köhnə dəyər yeni ilə əvəz olunur.
  • Map, Collection interfeysindən irs almır. "Açar-dəyər" cütləri ilə işləmək üçün öz metodlarına malikdir.
  • "Açar-dəyər" cütlərinin sırası, konkret tətbiqə görə fərqli ola bilər.

Populyar Map tətbiqləri:

  • HashMap: Elementlərin sırasını təmin etmir. Hash konfliktləri olmadan əksər əməliyyatlar üçün yüksək performans təmin edir (əlavə, əldə etmə, silmə).
  • LinkedHashMap: Elementləri əlavə olunduğu sırayla saxlayır (və ya giriş sırasına görə, uyğun şəkildə konfiqurasiya olunubsa).
  • TreeMap: Elementləri açara görə sıralı şəkildə saxlayır (təbii sıra və ya müqayisəçi tərəfindən təmin edilən). Əksər əməliyyatlar üçün logaritmik vaxt təmin edir.

Misal metodlar:

// Dəyəri açar ilə əldə et
Object value = map.get(key);

// Açar-dəyər cütünü əlavə et və ya yenilə
Object oldValue = map.put(key, value);

// Açar ilə cütü sil
Object removedValue = map.remove(key);

// Açarın olub-olmadığını yoxla
boolean containsKey = map.containsKey(key);

// Dəyərin olub-olmadığını yoxla
boolean containsValue = map.containsValue(value);

// Bütün açarların toplusunu əldə et
Set<KeyType> keys = map.keySet();

// Bütün dəyərlərin kolleksiyasını əldə et
Collection<ValueType> values = map.values();

// Bütün girişlərin (açar-dəyər cütləri) toplusunu əldə et
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();

// Map-in ölçüsünü əldə et
int size = map.size();

Map.Entry istifadə edərək iterasiya:

// Entry set üzərində iterasiya
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
    KeyType key = entry.getKey();
    ValueType value = entry.getValue();
    // ...
}