In this article, we will see how we can create a HashMap with multiple values associated with the same Key in Java. For example, we want to keep the track of strings and their occurrences in the text.
Like
- “a” is present at following indexes 4, 11, 25, 39
- “an” is present at the following indexes 36, 49, 63, 77
- “the” is present at the following indexes 14, 27, 43, 89
To store this data in a lookup table, we have to create a HashMap with a key as a string and then associate multiple values with the same key.
HashMap with List<T> Object as Value
To Create a HashMap of the key as String List Of integers as Value
HashMap<String, List<Integer>> wordFreqMap = new HashMap<>();
The below code is the implementation for that.
// Program : import java.util.Arrays; import java.util.HashMap; import java.util.List; public class MultipleValuesListExample { public static void main(String[] args) { // A HashMap created where key as String List Of integers as Value HashMap<String, List<Integer>> wordFreqMap = new HashMap<>(); // An array Of Occurrences is created Integer[] occurences = { 4, 11, 25, 39 }; // Adding List as value in the map wordFreqMap.put("a", Arrays.asList(occurences)); // Adding List as value in the map wordFreqMap.put("an", Arrays.asList(new Integer[] { 36, 49, 63, 77 })); // Adding List as value in the map wordFreqMap.put("the", Arrays.asList(new Integer[] { 14, 27, 43, 89 })); // Printing the Map Contents System.out.println(wordFreqMap); } }
Output : {a=[4, 11, 25, 39], an=[36, 49, 63, 77], the=[14, 27, 43, 89 ]}
Also, See:
HashMap with TreeSet as Value
To create a HashMap of a key as String List Of integers as Value
HashMap<String, TreeSet<Integer>> wordFreqMap = new HashMap<>();
The below code is the implementation for that.
// Program : import java.util.Arrays; import java.util.HashMap; import java.util.TreeSet; public class MultipleValuesSetExample { public static void main(String[] args) { // A HashMap created where key as String List Of integers as Value HashMap<String, TreeSet<Integer>> wordFreqMap = new HashMap<>(); // An array Of Occurrences created Integer[] occurences = { 4, 11, 25, 39 }; // Adding TreeSet as value in the map wordFreqMap.put("a", new TreeSet<Integer>(Arrays.asList(occurences))); // Adding TreeSet as value in the map wordFreqMap.put("an", new TreeSet<Integer>(Arrays.asList(new Integer[] { 36, 49, 63, 77 }))); // Adding TreeSet as value in the map wordFreqMap.put("the", new TreeSet<Integer>(Arrays.asList(new Integer[] { 14, 27, 43, 89 }))); // Printing the Map Contents System.out.println(wordFreqMap); } }
Output : {a=[4, 11, 25, 39], an=[36, 49, 63, 77], the=[14, 27, 43, 89 ]}