Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating Map using put() method

Tags:

java

I am trying to create a dictionnary in a <K, List<V>> format.

private static Map<String, Collection<String>> dict = new HashMap<String, Collection<String>>();

Using new HashMap<>(); or new HashMap<String, ArrayList<String>>(); throws incompatible data types error

I need a dictionary similar to the one below.

a: apple, ajar, axe, azure
b: ball, bat, box
d: dam, door, dish, drown, deer, dare
u: urn, umbrella
y: yolk

To do this, I worte below code. put() returns incompatible paramters compilation error. What is the right way to use put() for this example?

dict.put("a", "apple");
dict.put("a", "ajar");
.
.
.
dict.put("u", "umbrella");
dict.put("y", "yolk");

1 Answers

You need to place a List as the value to the map, for example:

List<String> listA = Arrays.asList("apple", "ajar", "axe", "azure");
dict.put("a", listA);

Alternatively, you can use guava Multimap which allows more than one value to be mapped to a given key.

like image 200
assylias Avatar answered Mar 12 '26 07:03

assylias



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!