问题
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?
回答1:
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
ListMultimapwill map keys to aListof values, keeping track of their order, while aSetMultimapwill map keys to aSetof distinct values.
回答2:
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.
来源:https://stackoverflow.com/questions/11444628/if-i-use-hashmapstring-arrayliststring-in-java