从地图中删除值

时间:2011-06-14 09:17:44

标签: java

我有Map<Something, List<String>> map。 我想从String中删除List<String>

这可能吗?我该怎么做?

我不想删除映射,只需更改条目的“值”。

我尝试了map.values().remove("someString"),但这似乎不起作用。

8 个答案:

答案 0 :(得分:3)

尝试map.get(somethingKey).remove("someString")

答案 1 :(得分:2)

如果要从特定的地图项中删除字符串,则应使用以下内容:

if (map.containsKey(somethingParticular) && map.get(somethingParticular)!=null)
    map.get(somethingParticular).remove("someString")

如果你想从所有地图项目中删除“someString”,那么最好这样做:

for(List<String> list : map.values()) {
    if (list!=null)
        list.remove("someString");
}

答案 2 :(得分:1)

你还需要一个值来索引地图。

然后你可以这样做:

map.get(mapValue).remove("someString")

答案 3 :(得分:1)

试试这个:map.get(key).remove(“someString”)

答案 4 :(得分:1)

map.values()会返回List<String>的集合。您必须遍历这些值并在每个列表中搜索您的密钥。

    Map<String, List<String>> map = new HashMap<String, List<String>>();
    Collection<List<String>> values = map.values();
    for( List<String> list : values ) {
        list.remove( "someString" );
    }

答案 5 :(得分:1)

是否要从所有字符串列表或特定字符串列表中删除字符串?

如果你想要一个特定的,那么你需要按键获得List<String>

map.get(thekey).remove("someString")

如果你想全部删除它们,那么你需要循环这些值,因为它们是List<String>的集合。

for (List<String> list : map.values()) {
    list.remove("someString");
}

答案 6 :(得分:1)

Map<Something, List<String>> myMap = ....;
myMap.get(somethingInstance).remove("someString");

答案 7 :(得分:0)

是的,有可能:

Map<String,List<Integer>> map = new HashMap<String, List<Integer>>();
List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);
intList.add(4);
map.put("intlist",intList);
System.out.println(map.get("intlist"));
intList = map.get("intlist");
intList.remove(1);
intList.add(4);     
//they will be the same (same ref)
System.out.println(intList);
System.out.println(map.get("intlist"));