简体   繁体   English

如果我使用HashMap <String, ArrayList<String> &gt;在Java中

[英]If I use HashMap<String, ArrayList<String>> in Java

I use HashMap<String, ArrayList<String>> in Java. 我在Java中使用HashMap<String, ArrayList<String>>

When input value is comes, 当输入值到来时,

For example, input value is [1, "stack"] , [2, "over"] , [1, "flow"] ..... 例如,输入值为[1, "stack"][2, "over"][1, "flow"] .....

I want to enter value [1, ["stack", "flow"]] , [2, "over"] in HashMap. 我想在HashMap中输入值[1, ["stack", "flow"]][2, "over"]

But key value is duplicate. 但是键值是重复的。 So, HashMap was overwrite. 因此,HashMap被覆盖。

So, What can I do? 那么,我该怎么办?

Try a Guava Multimap : 试试Guava Multimap

The traditional way to represent a graph in Java is Map<V, Set<V>> , which is awkward in a number of ways. 用Java表示图形的传统方式是Map<V, Set<V>> ,这在许多方面都很尴尬。 Guava's Multimap framework makes it easy to handle a mapping from keys to multiple values. Guava的Multimap框架使处理键到多个值的映射变得容易。

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. ListMultimap将键映射到值List ,以跟踪其顺序,而SetMultimap将键映射到一Set不同的值。

Call get on the Map . 调用getMap If it returns a List ( Set may be more appropriate) add to that. 如果它返回一个ListSet可能更合适),则添加到该列表中。 If it returns null , create a collection, add the value, put it in the map. 如果返回null ,则创建一个集合,添加值,然后将其放入地图中。

Better, use some third-party multimap. 更好的是,使用一些第三方多图。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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