简体   繁体   中英

If I use HashMap<String, ArrayList<String>> in Java

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM