java - 查找 HashMap 是否包含值并仅删除该值

标签 java arraylist iterator hashmap

假设我们有以下代码:

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"}}

现在我想在 HashMap 中找到值 "B" 并希望从 arraylist 中删除该值(存在于 > HashMap

最终结果如下:

{{"1"},{"A","C"}}

谁能告诉我该怎么做?

最佳答案

在 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") 

关于java - 查找 HashMap 是否包含值并仅删除该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27172322/

相关文章:

java - 从文件中提取具有最新版本的应用程序

java - 使用 Java Streams 过滤对象的 ArrayList 以返回 String 类型的 ArrayList

java - 返回作为 HashMap 中的值的 ArrayList 的大小

java - GeoTools:从 LAT/LNG 转换为 Albers

java - 有没有办法在图像从外部存储中删除后立即获取图像的 uri?

java - 无法将以我的自定义对象作为其数据类型的 ArrayList 转换为相应的常规数组

c++ - 如何在删除 en 元素(双 for 循环)后正确指向 std::list?

c++ - 如何迭代结构中的 vector ?

java - 映射字符串列表?

java - jsp中的转义字符?