Menu
CoddyTech

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.

HashMap'ler ayrıca put(), remove() ve replace() yöntemlerini kullanarak girdileri kaldırmayı ve güncellemeyi 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" öğesini kaldırır
System.out.println(users);
// {alice=Admin}

Bir anahtarı güncellemek için:

users.replace("alice", "Guest");
// alice değerini Guest olarak günceller

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

Görev

Kolay

Belirli koşullara göre verilen bir HashMap'i değiştiren, modifyMap adlı bir metot yazın.

  1. Aşağıdaki özelliklere sahip data adlı bir HashMap alır:
    • Anahtarların türü String'dir.
    • Değerlerin türü Integer'dır.
  2. Bir String olan key alır.
  3. Bir Integer olan newValue alır.

Metot, aşağıdaki kurallara göre güncellenmiş HashMap'i döndürmelidir:

  • Anahtar data içinde varsa ve newValue ile aynı değere sahipse, replace() kullanarak değeri 1 artırın.
  • Anahtar varsa ancak farklı bir değere sahipse, onu kaldırın.
  • Anahtar yoksa, newValue ile ekleyin.

Kendin dene

// --- hashmap dizesini 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'in String gösterimini 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

Kendi başına pratik yap: Online Java derleyicisi