Menu
CoddyTech

まとめ - HashMap

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

challenge icon

チャレンジ

簡単

processHashMapという名前のメソッドを作成します。このメソッドはHashMap<String, Integer>とString操作の配列を受け取り、次の処理を実行します。

1. GET操作

  • 形式: "GET key"
  • 処理:
    • キーが存在する場合: 値を出力する
    • キーが存在しない場合: "Not found"を出力する

2. CHECK操作

  • 形式: "CHECK key"
  • 処理:
    • キーが存在する場合: "Exists"を出力する
    • キーが存在しない場合: "Not found"を出力する

3. MODIFY操作

  • 形式: "MODIFY key targetValue"
  • 処理:
    • キーが存在し、かつ現在の値がtargetValueと等しい場合: replace()を使用して、値をtargetValue + 1に更新する
    • キーが存在するが、現在の値がtargetValueと異なる場合: remove()を使用してキーを削除する
    • キーが存在しない場合: put()を使用して、値をtargetValueとして追加する
  • 注意: MODIFY操作中は何も出力しないでください

最終出力:

すべての操作を処理した後、メソッドは変更後のHashMapを返します。mainメソッドがJSON形式で出力します。

自分で試してみよう

// --- hashmapの文字列をhashmapに変換するためのモジュール ---
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> processHashMap(HashMap<String, Integer> data, String[] operations) {
        // ここにコードを書いてください
    }

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

        // HashMapのStringをHashMapに変換する
        Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
        HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);

        // ArrayのStringをArrayに変換する
        String[] operations = new Gson().fromJson(operationsString, String[].class);

        HashMap<String, Integer> result = processHashMap(data, operations);
        System.out.println(new Gson().toJson(result));
    }
}

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

自分で練習してみよう: Javaオンラインコンパイラ