Java HashMap
Java HashMap
A HashMap
stores items in key/value pairs, where each key maps to a specific value.
It is part of the java.util
package and implements the
Map
interface.
Instead of accessing elements by an index (like with ArrayList), you use a key to retrieve its associated value.
A HashMap
can store many different combinations, such as:
String
keys andInteger
valuesString
keys andString
values
Create a HashMap
Create a HashMap
object called capitalCities
that will store
String
keys and String
values:
ExampleGet your own Java Server
import java.util.HashMap; // Import the HashMap class
HashMap<String, String> capitalCities = new HashMap<>();
Now you can use methods like put()
to add key/value pairs,
get()
to retrieve a value by key,
and remove()
to delete an entry - all by using keys instead of index numbers.
Add Items
To add items to a HashMap
, 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("India", "New Dehli");
capitalCities.put("Austria", "Wien");
capitalCities.put("Norway", "Oslo");
capitalCities.put("Norway", "Oslo"); // Duplicate
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
Note: In the example above, if the same key (like "Norway") is added more than once, the latest value will overwrite the previous one, because keys in a HashMap
must be unique.
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:
Note: The size only counts unique keys. If a key is added more than once, only the latest value is kept.
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));
}
}
}
Complete HashMap Reference
For a complete reference of HashMap methods, go to our Java HashMap Reference.
When Order Matters
In the next chapter, you will learn about TreeMap
, which stores key/value pairs in sorted order by key.
Exercise?What is this?
Test your skills by answering a few questions about the topics of this page
A HashMap