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));
}
}
}
自分で試してみる»