Sobes.tech
Junior

Map-də bütün dəyərləri necə dövr etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da Map üzərində təkrarlamağın bir neçə yolu var.

  • entrySet() istifadə edərək: Ən çevik üsul, Map.Entry cütlüklərinin Set-ini qaytarır. Həm iterator, həm də for-each dövrü ilə keçilə bilər.

    // `entrySet()` ilə for-each istifadə
    for (Map.Entry<String, Integer> entry : map.entrySet()) {
        String key = entry.getKey();
        Integer value = entry.getValue();
        // Açar və dəyəri emal et
    }
    
  • keySet() istifadə edərək: Bütün açarların Set-ini qaytarır. Sonra hər açar üçün dəyəri əldə etmək olar.

    // `keySet()` ilə for-each istifadə
    for (String key : map.keySet()) {
        Integer value = map.get(key);
        // Açar və dəyəri emal et
    }
    
  • values() istifadə edərək: Bütün dəyərlərin Collection-ını qaytarır. Bu üsul yalnız dəyərlər lazım olduqda faydalıdır.

    // `values()` ilə for-each istifadə
    for (Integer value : map.values()) {
        // Dəyəri emal et
    }
    
  • İterator istifadə edərək: entrySet(), keySet()values() üçün iterator istifadə etmək olar.

    // `entrySet()` ilə iterator istifadə
    Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
    while (iterator.hasNext()) {
        Map.Entry<String, Integer> entry = iterator.next();
        String key = entry.getKey();
        Integer value = entry.getValue();
        // Açar və dəyəri emal et
    }
    
  • Stream API istifadə edərək (Java 8+): Daha müasir yanaşma, güclü vasitələr təqdim edir.

    // `entrySet()` ilə forEach() və Stream istifadə
    map.entrySet().stream().forEach(entry -> {
        String key = entry.getKey();
        Integer value = entry.getValue();
        // Açar və dəyəri emal et
    });
    
    // `keySet()` ilə forEach() və Stream istifadə
    map.keySet().stream().forEach(key -> {
        Integer value = map.get(key);
        // Açar və dəyəri emal et
    });
    

Yöntəm seçimi konkret tapşırıq və üstünlüklərə bağlıdır. entrySet() çox vaxt ən səmərəlidir, çünki açar ilə dəyərin iki dəfə axtarışını (məsələn, keySet()map.get() ilə) qarşısını alır. Stream API isə daha mürəkkəb əməliyyatlar üçün əlverişlidir.