まとめ - HashMap
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部。レッスン 15/59。
チャレンジ
簡単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として追加する
- キーが存在し、かつ現在の値が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オンラインコンパイラ