Java ハッシュマップ
ArrayList
の章で、配列はアイテムを順序付けられたコレクションとして格納し、インデックス番号 (int
型)でアクセスしなければならないことを学びました。ただし、HashMap
は、アイテムを "キー/値" のペアで格納し、別の型(String
など)のインデックスでアクセスできます。
1 つのオブジェクトは、別のオブジェクト (値) へのキー (インデックス) として使用され、さまざまな型を保存できます。String
キーとInteger
値、または次のような同じタイプString
キーとString
値を保存することもできます。
例
capitalCitiesというHashMap
オブジェクトを作成し、String キーと
String`値を格納します。
import java.util.HashMap; // import the HashMap class
HashMap<String, String> capitalCities = new HashMap<String, String>();
アイテムを追加
HashMap
クラスには便利なメソッドがたくさんあります。たとえば、アイテムを追加するには、put()
メソッドを使います。
例
// Import the HashMap class
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called capitalCities
HashMap<String, String> capitalCities = new HashMap<String, String>();
// Add keys and values (Country, City)
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
自分で試してみる»
アイテムにアクセスする
HashMap
内の値にアクセスするには、get()
メソッドを使用してそのキーを参照します。
アイテムを削除する
アイテムを削除するには、remove()
メソッドを使い、キーを参照してください。
すべてのアイテムを削除するには、clear()
メソッドを使います。
ハッシュマップのサイズ
アイテムの数を調べるには、size()
メソッドを使用します。
HashMap をループする
for-eachループでHashMap
のアイテムをループします。
ノート:キーのみが必要な場合はkeySet()
メソッドを、values()
値のみが必要な場合はvalues
メソッドを使用します。
例
// Print keys
for (String i : capitalCities.keySet()) {
System.out.println(i);
}
自分で試してみる»
例
// Print values
for (String i : capitalCities.values()) {
System.out.println(i);
}
自分で試してみる»
例
// Print keys and values
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
自分で試してみる»
その他のタイプ
HashMapのキーと値は、実際にはオブジェクトです。上記の例では、"String" 型のオブジェクトを使用しました。 JavaのString はオブジェクト (プリミティブ型ではない) であることに注意してください。 int などの他の型を使用するには、同等のラッパークラスを指定する必要があります。Integer
他のプリミティブ型については、次を使用します。 boolean
はBoolean
、char
はCharacter
、double
はDouble
などを使用します。
例
peopleというHashMap
オブジェクトを作成し、String
キーとInteger
値を格納します。
// Import the HashMap class
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called people
HashMap<String, Integer> people = new HashMap<String, Integer>();
// Add keys and values (Name, Age)
people.put("John", 32);
people.put("Steve", 30);
people.put("Angie", 33);
for (String i : people.keySet()) {
System.out.println("key: " + i + " value: " + people.get(i));
}
}
}
自分で試してみる»