我有Map<Something, List<String>> map
。
我想从String
中删除List<String>
。
这可能吗?我该怎么做?
我不想删除映射,只需更改条目的“值”。
我尝试了map.values().remove("someString")
,但这似乎不起作用。
答案 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"));