Menu
Coddy logo textTech

Sözlükleri Değiştirme

Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 14 / 59.

HashMaps ayrıca put(), remove() ve replace() yöntemlerini kullanarak girişlerin kaldırılmasını ve güncellenmesini destekler.

Örneğin, önce bir HashMap dolduralım:

HashMap<String, String> users = new HashMap<>();
users.put("alice", "Admin");
users.put("bob", "User");

Bir anahtarı kaldırmak için:

users.remove("bob"); // "bob" anahtarını kaldırır
System.out.println(users);
// {alice=Admin}

Bir anahtarı güncellemek için:

users.replace("alice", "Guest");
// alice'i Guest olarak günceller

users.replace("Charlie", "Admin");
// Hiçbir şey yapmaz ("Charlie" anahtarı mevcut değil)
challenge icon

Görev

Kolay

Belirli koşullara göre verilen bir HashMap'i değiştiren <strong>modifyMap</strong> adında bir metot yazın.

  1. Şu özelliklere sahip data adında bir HashMap alır:
    • Anahtarlar String türündedir.
    • Değerler Integer türündedir.
  2. Bir String key alır.
  3. Bir Integer newValue alır.

Metot, aşağıdakileri uygulayarak güncellenmiş HashMap'i döndürmelidir:

  • Eğer anahtar data içinde mevcutsa ve newValue ile aynı değere sahipse, <strong>replace()</strong> kullanın ancak değeri 1 artırın.
  • Eğer anahtar mevcutsa ancak farklı bir değere sahipse, onu silin.
  • Eğer anahtar mevcut değilse, onu newValue ile ekleyin.

Kendin dene

// --- hashmap dizgisini hashmap'e dönüştürmek için modüller ---
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
// -----------------------------
import java.util.HashMap;
import java.util.Scanner;

public class Main {
    public static HashMap<String, Integer> modifyMap(HashMap<String, Integer> data, String key, int newValue) {
        // Kodunuzu buraya yazın
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String hashMapString = scanner.nextLine();
        String key = scanner.nextLine();
        int newValue = scanner.nextInt();

        // HashMap dizgisini HashMap'e dönüştür
        Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
        HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);

        HashMap<String, Integer> result = modifyMap(data, key, newValue);
        System.out.println(new Gson().toJson(result));
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler