我有 HashMapHashMap<Integer, List<String>> storeR
并且它存储"22,name1,name2"
..但是有什么方法可以从 HashMap 中name1
删除22
?我只想从 22 中删除名称 1。我该怎么做?我希望你能帮助我。谢谢你。
问问题
736 次
3 回答
4
从地图中取出列表并删除要删除的元素:
storeR.get(22).remove("name1");
但是,如果地图中没有键22
,或者它的值是,null
这将抛出一个NullPointerException
。
于 2013-02-16T15:54:38.937 回答
3
鉴于您对此提出的问题,您最好使用第三方库:Guava有一个Multimap
具有各种实现的接口 - 您可能想要ArrayListMultimap
.
然后你可以写:
multimap.remove(22, "name1");
如果您真的想继续自己手动完成所有工作,您可以调用get
map 以返回列表,然后remove
在列表中删除值。但是你应该考虑如果你已经删除了最后一个值,你是否还想完全删除键 - 当然,如果你不知道键是否已经存在于地图中,你只需要有条件地调用remove
...
于 2013-02-16T15:56:11.950 回答
0
Guava 中的ArrayListMultimap就是针对这种情况而设计的。
请参阅: http ://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained#Multimap
于 2013-02-16T15:56:48.290 回答