In the Java programming language, a hashmap is a list of associated values. Java uses hashmaps to store data. If you keep a lot of structured data, it's useful to know the various retrieval methods available.
Create a hashmap
Create a hashmap in Java by importing and using the HashMap
class. When you create a hashmap, you must define what constitutes a valid value (such as Integer
or String
). A hashmap holds pairs of values.
package com.opensource.example;
import java.util.HashMap;
public class Mapping {
public static void main(String[] args) {
HashMap<String, String> myMap = new HashMap<>();
myMap.put("foo", "hello");
myMap.put("bar", "world");
System.out.println(myMap.get("foo") + " " + myMap.get("bar"));
System.out.println(myMap.get("hello") + " " + myMap.get("world"));
}
}
The put
method allows you to add data to your hashmap, and the get
method retrieves data from the hashmap.
Run the code to see the output. Assuming you've saved the code in a file called main.java
, you can run it directly with the java
command:
$ java ./main.java
hello world
null null
Calling the second values in the hashmap returns null
, so the first value is essentially a key and the second a value. This is known as a dictionary or associative array in some languages.
You can mix and match the types of data you put into a hashmap as long as you tell Java what to expect when creating it:
package com.opensource.example;
import java.util.HashMap;
public class Mapping {
public static void main(String[] args) {
HashMap<Integer, String> myMap = new HashMap<>();
myMap.put(71, "zombie");
myMap.put(2066, "apocalypse");
System.out.println(myMap.get(71) + " " + myMap.get(2066));
}
}
Run the code:
$ java ./main.java
zombie apocalypse
Iterate over a hashmap with forEach
There are many ways to retrieve all data pairs in a hashmap, but the most direct method is a forEach
loop:
package com.opensource.example;
import java.util.HashMap;
public class Mapping {
public static void main(String[] args) {
HashMap<String, String> myMap = new HashMap<>();
myMap.put("foo", "hello");
myMap.put("bar", "world");
// retrieval
myMap.forEach( (key, value) ->
System.out.println(key + ": " + value));
}
}
Run the code:
$ java ./main.java
bar: world
foo: hello
Structured data
Sometimes it makes sense to use a Java hashmap so you don't have to keep track of dozens of individual variables. Once you understand how to structure and retrieve data in a language, you're empowered to generate complex data in an organized and convenient way. A hashmap isn't the only data structure you'll ever need in Java, but it's a great one for related data.
Comments are closed.