簡體   English   中英

從 map 中刪除一個值

[英]Removing a value from a map

我有一個Map<Something, List<String>> map 我想從List<String>中刪除一個String

那可能嗎? 我怎么做?

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

我試過map.values().remove("someString") ,但這似乎不起作用。

試試map.get(somethingKey).remove("someString")

如果你想從一個特定的 map 項目中刪除一個字符串,你應該使用這樣的東西:

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

如果您想從所有 map 項目中刪除“someString”,最好執行以下操作:

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

您實際上還需要一個值來索引 map。

然后你可以做這樣的事情:

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

試試這個:map.get(key).remove("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>的集合。

for (List<String> list : map.values()) {
    list.remove("someString");
}
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"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM