从列表中删除值

时间:2013-01-23 07:03:32

标签: java

我有一个查询我有这样的地图

  Map ppvValidatedinfo = new HashMap<String, List<String>>();

它包含像这样的值

   1  22 23 24 25

所以1是键(患者id),值(scriptinfo)是22,23,24,25

现在我从后端获取此值,如下所示

String ScriptInfo = ((IItemPluRx)item).getScriptInfo();
  

现在假设脚本信息的值为24

我想知道是否在我的Map中列表中的值部分,它是否包含24,如果它包含然后我想从列表中删除它请告知如何实现它

3 个答案:

答案 0 :(得分:3)

ppvValidatedinfo.get("1").remove("24");

它假定ppvValidatedinfo是通用的

 Map<String, List<String>> ppvValidatedinfo = new HashMap<String, List<String>>();

,否则

((List)ppvValidatedinfo.get("1")).remove("24");

请注意,如果键不在地图中,可能会抛出NullPointerException,可以更正 如

List<String> list = ppvValidatedinfo.get(key);
if (list != null){
   list.remove(value);
}

答案 1 :(得分:1)

您将需要迭代HashMap,拉出List对象,然后迭代它,如果找到搜索值,则删除具有相应键的HashMap条目。

答案 2 :(得分:0)

你可以简单地做到。来自remove

  

从此列表中删除指定元素的第一个匹配项(如果存在)。如果列表不包含该元素,则不会更改。更正式地,删除具有最低索引i的元素,使得(o == null?get(i)== null:o.equals(get(i)))(如果存在这样的元素)。如果此列表包含指定的元素,则返回true(或等效地,如果此列表因调用而更改)。

List<String> value =  ppvValidatedinfo.get("1");
if(value != null){
   boolean deleted = value.remove("24");
}