我有一個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