从列表中删除值,同时将其与列表进行比较

lea*_*ock 1 java java-8

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

    List<String> list = getRequiredList();
    Set<String> set = new HashSet<>(list)
    Map<String, String> map = getMap(); 
Run Code Online (Sandbox Code Playgroud)

需要一些有关如何从地图中删除(如果不在列表中)的信息

VGR*_*VGR 7

关于Maps的一件整洁的事情是,键集值集合都由Map本身支持。这意味着从密钥集中删除密钥会从其所属的映射中有效删除它。

因此,可以在键集上使用retainAll

map.keySet().retainAll(list);
Run Code Online (Sandbox Code Playgroud)

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