まとめ - HashMap
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 15/59。
チャレンジ
簡単processHashMap という名前のメソッドを作成し、HashMap<String, Integer> と String 型の operations 配列を受け取り、以下のアクションを実行してください:
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 を値として追加
- キーが存在し、かつ現在の値が targetValue と等しい場合:
- 注意: MODIFY 操作中は何も印刷しない
最終出力:
すべての操作を処理した後、メソッドは修正された HashMap を返す必要があります。main メソッドが JSON 形式でそれを印刷します。
自分で試してみよう
// --- ハッシュマップの文字列をハッシュマップに変換するためのモジュール ---
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();
// ハッシュマップの文字列をハッシュマップに変換
Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);
// 配列の文字列を配列に変換
String[] operations = new Gson().fromJson(operationsString, String[].class);
HashMap<String, Integer> result = processHashMap(data, operations);
System.out.println(new Gson().toJson(result));
}
}