假设我们有以下代码:
public class HashMapTest {
public static void main(String[] args) {
HashMap<String, ArrayList<String>> map1 = new HashMap<>();
ArrayList<String> al = new ArrayList<>();
al.add("A");
al.add("B");
al.add("C");
map1.put("1", al);
}
}
首先HashMap
看起来像:
{{"1"},{"A","B","C"}}
现在,我想在"B"
中找到值HashMap
,并希望从arraylist
中的hashmap
中删除此值。
所以最终的结果看起来像是:
{{"1"},{"A","C"}}
有人可以告诉我怎么做吗?
答案 0 :(得分:3)
在HasMap中使用HashSet而不是ArrayList。
HashMap<String, HashSet<String>> map1 = new HashMap<>();
HashSet<String> al = new HashSet<>();
al.add("A");
al.add("B");
al.add("C");
map1.put("1", al);
删除:
map1.get("1").remove("B")
答案 1 :(得分:1)
目前,Java不支持使用hashmap
中的值删除元素,因此您必须迭代所有元素并获取arraylist
并检查该值是否存在(如果存在)而不是删除该值。如果值是静态的,你可以使用map1.get("1").remove("B")
,如果它是动态的,那么提供一个输入源,然后迭代地图,然后迭代arraylist
检查值是否仍然存在,如果是,则删除它`