我有一个Map<Something, List<String>> map
。 我想从List<String>
中删除String
。从地图中删除值
这可能吗?我怎么做 ?
我不想删除映射,只是改变条目的'值'。我试过map.values().remove("someString")
,但这似乎不起作用。
我有一个Map<Something, List<String>> map
。 我想从List<String>
中删除String
。从地图中删除值
这可能吗?我怎么做 ?
我不想删除映射,只是改变条目的'值'。我试过map.values().remove("someString")
,但这似乎不起作用。
尝试map.get(somethingKey).remove("someString")
。
您还需要确实有一个值来索引到地图中。
然后,你可以做这样的事情:
map.get(mapValue).remove("someString")
试试这个:map.get(键)卸下摆臂( “someString”)
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");
}
是否要从所有字符串列表或特定字符串列表中删除字符串?
如果你想有一个特定的一个,那么你需要通过键获得List<String>
:
map.get(thekey).remove("someString")
如果你想删除它们,那么你需要遍历值,因为他们”重新收集List<String>
的。
Map<Something, List<String>> myMap = ....;
myMap.get(somethingInstance).remove("someString");
是的,它是可能的:
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"));
,如果你想删除特定地图项的字符串,你应该使用这样的事情:
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");
}
好主意'containsKey()'和空检查。 – Peter 2011-06-14 09:28:57