Sobes.tech
Junior

Чӣ гуна метавон ҳама арзишҳоро дар Map гузаронд?

sobes.tech AI

Ҷавоб аз AI

Исти чанд роҳҳои барои итерировать кардани Map дар Java вуҷуд дорад.

  • Истифодаи entrySet(): Самти универсалӣ, баргардондани Set аз ҷуфтҳои калид-арзиш (Map.Entry). Мумкин аст бо истифода аз итератор ё цикл for-each гузаронида шавад.

    // Истифодаи for-each бо entrySet()
    for (Map.Entry<String, Integer> entry : map.entrySet()) {
        String key = entry.getKey();
        Integer value = entry.getValue();
        // Коркарди калид ва арзиш
    }
    
  • Истифодаи keySet(): Баргардондани Set аз ҳамаи калидҳо дар Map. Баъдан метавон арзишро барои ҳар як калид гирифт.

    // Истифодаи for-each бо keySet()
    for (String key : map.keySet()) {
        Integer value = map.get(key);
        // Коркарди калид ва арзиш
    }
    
  • Истифодаи values(): Баргардондани Collection аз ҳамаи арзишҳо дар Map. Ин усул барои вақте ки танҳо арзишҳо лозиманд, муфид аст.

    // Истифодаи for-each бо values()
    for (Integer value : map.values()) {
        // Коркарди арзиш
    }
    
  • Истифодаи итератор: Барои entrySet(), keySet() ва values() метавон итератор истифода бурд.

    // Истифодаи итератор бо entrySet()
    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();
        // Коркарди калид ва арзиш
    }
    
  • Истифодаи Stream API (Java 8+): Равиши муосир, ки воситаҳои қавӣ барои коркарди маълумот медиҳад.

    // Истифодаи forEach() ва Stream entrySet()
    map.entrySet().stream().forEach(entry -> {
        String key = entry.getKey();
        Integer value = entry.getValue();
        // Коркарди калид ва арзиш
    });
    
    // Истифодаи forEach() ва Stream keySet()
    map.keySet().stream().forEach(key -> {
        Integer value = map.get(key);
        // Коркарди калид ва арзиш
    });
    

Интихоби усул вобаста ба вазифаи мушаххас ва афзалиятҳо мебошад. entrySet() аксар вақт самараноктар аст, зеро аз ҷустуҷӯи дукаратаи арзиш дар асоси калид (мисли бо keySet() ва map.get()) пешгирӣ мекунад. Stream API барои амалиёти мураккабтар мувофиқ аст.