java - 在将值与列表进行比较时从 Map 中删除值

标签 java java-8

初学者QQ:我有一个列表和一个 map .我需要对照“列表”检查“ map ”中的所有值,如果该值在 map 中但不在列表中,那么我需要将其删除

    List<String> list = getRequiredList();
    Set<String> set = new HashSet<>(list)
    Map<String, String> map = getMap(); 

如果不在列表中,需要一些关于如何从 map 中删除的信息

最佳答案

map 的一个巧妙之处在于 key setvalue collection两者都由 Map 本身支持。这意味着从键集中删除一个键会有效地将它从它所属的 Map 中删除。

因此,您可以使用 retainAll在键组上:

map.keySet().retainAll(list);

这将确保 Map 中的唯一键是列表中的字符串。

关于java - 在将值与列表进行比较时从 Map 中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57381229/

相关文章:

java - 如何使用 Java 的 lambda 表达式来打印数组?

java - 使用 spring 从数据库构造一个对象,指定要从中构造对象的行 ID

java - 我们如何/为什么可以说 java 8 中的功能接口(interface)是标记接口(interface)

java - 在字节数组中存储对象引用

Java(安卓): how to average rgb in specific area

java - 为什么我的Gradle Java项目没有在Intellij中构建?

java - Spliterator trySplit 返回类型

date - java.time.temporal.UnsupportedTemporalTypeException : Unsupported field: OffsetSeconds

java - 使用具有外键约束的 JPA 删除对象

java - JMock 通用返回类型