[英]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 aList
of values, keeping track of their order, while aSetMultimap
will map keys to aSet
of distinct values.ListMultimap
将键映射到值List
,以跟踪其顺序,而SetMultimap
将键映射到一Set
不同的值。
Call get
on the Map
. 调用get
的Map
。 If it returns a List
( Set
may be more appropriate) add to that. 如果它返回一个List
( Set
可能更合适),则添加到该列表中。 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.