Java HashMap
Java HashMap
In the ArrayList chapter, you learned that Arrays store items as an ordered collection, and you have to access them with an index number (int type).
A HashMap however, store items in "key/value" pairs, and you can access them by an index of another type (e.g. a String).
One object is used as a key (index) to another
object (value). It can store different types: String keys and Integer values, or the
same type, like: String keys and String values:
Example
Create a HashMap object called capitalCities that will store String keys and String
values:
import java.util.HashMap; // import the HashMap class
HashMap<String, String> capitalCities = new HashMap<String, String>();
Add Items
The HashMap class has many useful methods. For example, to
add items to it, use the put() method:
Example
// 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);
}
}
Access an Item
To access a value in the HashMap, use the get() method and refer to
its key:
Remove an Item
To remove an item, use the remove() method
and refer to the key:
To remove all items, use the clear() method:
HashMap Size
To find out how many items there are, use the size() method:
Loop Through a HashMap
Loop through the items of a HashMap with a for-each loop.
Note: Use the keySet() method if you only want the keys, and use the values() method if you only want the values:
Example
// Print keys
for (String i : capitalCities.keySet()) {
System.out.println(i);
}
Example
// Print values
for (String i : capitalCities.values()) {
System.out.println(i);
}
Example
// Print keys and values
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
Other Types
Keys and values in a HashMap are actually objects. In the examples above, we used objects of type "String". Remember that a String in Java is an object (not a primitive type). To use other types, such as int, you must specify an equivalent wrapper class: Integer. For other primitive types,
use: Boolean for boolean, Character for char, Double for double,
etc:
Example
Create a HashMap object called
people that will store String keys and
Integer
values:
// 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));
}
}
}