Sobes.tech
Junior

Kuidas läbida kõiki väärtusi Mapis?

sobes.tech AI

Vastus AI-lt

On olemas mitu viisi, kuidas Java-s Map-i läbi käia.

  • Kasutades entrySet(): Kõige universaalsem viis, mis tagastab Set paari võtme-väärtus (Map.Entry). Seda saab läbida iteratori või for-each tsükliga.

    // Kasutades for-each koos entrySet()
    for (Map.Entry<String, Integer> entry : map.entrySet()) {
        String key = entry.getKey();
        Integer value = entry.getValue();
        // Võtme ja väärtuse töötlemine
    }
    
  • Kasutades keySet(): Tagastab Set kõigist võtmetest Map-is. Seejärel saab iga võtme kohta väärtuse saada.

    // Kasutades for-each koos keySet()
    for (String key : map.keySet()) {
        Integer value = map.get(key);
        // Võtme ja väärtuse töötlemine
    }
    
  • Kasutades values(): Tagastab Collection kõigist väärtustest Map-is. See meetod on kasulik, kui vaja on ainult väärtusi.

    // Kasutades for-each koos values()
    for (Integer value : map.values()) {
        // Väärtuse töötlemine
    }
    
  • Kasutades iteratorit: entrySet(), keySet() ja values() saab läbida iteratoriga.

    // Kasutades iteratorit koos `entrySet()`-iga
    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();
        // Võtme ja väärtuse töötlemine
    }
    
  • Kasutades Stream API-d (Java 8+): Kaasaegsem lähenemine, mis pakub võimsaid tööriistu andmete töötlemiseks.

    // Läbimine kasutades forEach() ja Streami entrySet()
    map.entrySet().stream().forEach(entry -> {
        String key = entry.getKey();
        Integer value = entry.getValue();
        // Võtme ja väärtuse töötlemine
    });
    
    // Läbimine kasutades forEach() ja Streami keySet()
    map.keySet().stream().forEach(key -> {
        Integer value = map.get(key);
        // Võtme ja väärtuse töötlemine
    });
    

Valik sõltub konkreetse ülesande ja eelistuste põhjal. entrySet() on sageli kõige tõhusam, kuna väldib topeltotsingut väärtuse leidmiseks võtme järgi (keySet() ja map.get()). Stream API sobib keerulisemate operatsioonide jaoks.