値の取得
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部。レッスン 12/59。
HashMapでは、各キーが値に関連付けられています。値にアクセスするには、get()メソッドを使用してキーを指定します。
その後、HashMapはそのキーに関連付けられた値を返します。キーがHashMapに存在しない場合、get()メソッドはnullを返します。
基本的な構文は次のとおりです。
ValueType value = mapName.get(key);mapName:HashMapの名前。key: 関連付けられた値を取得するキー。ValueType: 値のデータ型。
例えば、まず HashMap を定義しましょう:
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);そして、これらの値を取得します。
Integer aliceAge = ages.get("Alice");
// Aliceの年齢: 30
Integer charlieAge = ages.get("Charlie");
// Charlieの年齢: nullこの例では、キー「Alice」を使用して Alice の年齢を取得します。「Charlie」はHashMapのキーではないため、charlieAgeはnullです。
チャレンジ
簡単getCapitalという名前のメソッドを作成し、2つの引数を受け取るようにします。
- キーが国名(文字列)で、値が首都名(文字列)である、
capitalsという名前のHashMap。 - 国名を表す文字列
country。
このメソッドは、capitals HashMapにアクセスして、指定された国の首都を返す必要があります。国がHashMap内に見つからない場合は、"Not found"を返します。
自分で試してみよう
// --- ハッシュマップの文字列をハッシュマップに変換するモジュール ---
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 String getCapital(HashMap<String, String> capitals, String country) {
// 以下にコードを書いてください
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String hashMapString = scanner.nextLine();
String country = scanner.nextLine();
// HashMapのStringをHashMapに変換
Type mapType = new TypeToken<HashMap<String, String>>(){}.getType();
HashMap<String, String> countryCapitals = new Gson().fromJson(hashMapString, mapType);
String result = getCapital(countryCapitals, country);
System.out.println(result);
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Javaオンラインコンパイラ