Menu
Coddy logo textTech

辞書の変更

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 14/59。

HashMaps は、キーの削除とそれらの更新をサポートするメソッドとして put()remove()、および replace() も提供します。

例えば、まず HashMap に要素を追加してみましょう:

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

キーを削除するには:

users.remove("bob"); // Removes "bob"
System.out.println(users);
// {alice=Admin}

キーを更新するには:

users.replace("bob", "Guest");
// Updates bob to Guest

users.replace("Charlie", "Admin");
// Does nothing (key "Charlie" doesn't exist)
challenge icon

チャレンジ

簡単

<strong>modifyMap</strong> という名前のメソッドを書きなさい。このメソッドは、指定された条件に基づいて与えられた HashMap を変更します。

  1. data という名前の HashMap を受け取ります。この HashMap では:
    • キーは String 型です。
    • 値は Integer 型です。
  2. String 型の key を受け取ります。
  3. Integer 型の newValue を受け取ります。

このメソッドは、以下の手順に従って更新された HashMap を返します:

  • dataキーが存在し、newValue同じ値を持つ場合、<strong>replace()</strong> を使用して値を 1 増やします
  • キーが存在するが異なる値を持つ場合、それを削除します。
  • キーが存在しない場合、<strong>newValue</strong> で追加します。

チートシート

データの変更のための HashMap メソッド:

キーを削除:

users.remove("bob"); // "bob" のキー・バリュー対を削除

値を更新/置換:

users.replace("alice", "Guest"); // 既存のキーを更新
users.replace("nonexistent", "Admin"); // キーが存在しない場合、何もしません

キーを追加または更新:

users.put("newUser", "Admin"); // 新しいキーを追加または既存のものを更新

自分で試してみよう

// --- ハッシュマップの文字列をハッシュマップに変換するためのモジュール ---
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) {
        // ここにコードを記述してください
    }

    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 の文字列を HashMap に変換
        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 icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン