0

我有 HashMapHashMap<Integer, List<String>> storeR并且它存储"22,name1,name2"..但是有什么方法可以从 HashMap 中name1删除22?我只想从 22 中删除名称 1。我该怎么做?我希望你能帮助我。谢谢你。

4

3 回答 3

4

从地图中取出列表并删除要删除的元素:

storeR.get(22).remove("name1");

但是,如果地图中没有键22,或者它的值是,null这将抛出一个NullPointerException

于 2013-02-16T15:54:38.937 回答
3

鉴于您对此提出的问题,您最好使用第三方库:Guava有一个Multimap具有各种实现的接口 - 您可能想要ArrayListMultimap.

然后你可以写:

multimap.remove(22, "name1");

如果您真的想继续自己手动完成所有工作,您可以调用getmap 以返回列表,然后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 回答