I use HashMap<String, ArrayList<String>>
in Java.
When input value is comes,
For example, input value is [1, "stack"]
, [2, "over"]
, [1, "flow"]
.....
I want to enter value [1, ["stack", "flow"]]
, [2, "over"]
in HashMap.
But key value is duplicate. So, HashMap was overwrite.
So, What can I do?
Try a Guava Multimap:
The traditional way to represent a graph in Java is Map<V, Set<V>>
, which is awkward in a number of ways. Guava's Multimap framework makes it easy to handle a mapping from keys to multiple values.
A ListMultimap
will map keys to a List
of values, keeping track of their order, while a SetMultimap
will map keys to a Set
of distinct values.
Call get
on the Map
. If it returns a List
(Set
may be more appropriate) add to that. If it returns null
, create a collection, add the value, put it in the map.
Better, use some third-party multimap.