0

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

  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

我想知道在列表中的值部分的地图中是否包含 24,如果包含,那么我想将其从列表中删除,请告知如何实现它

4

3 回答 3

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);
}
于 2013-01-23T07:05:42.417 回答
1

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

于 2013-01-23T07:08:03.123 回答
0

你可以简单地做到这一点。从 删除

从此列表中删除第一次出现的指定元素(如果存在)。如果列表不包含该元素,则它不变。更正式地说,删除具有最低索引 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");
}
于 2013-01-23T07:10:58.307 回答