Map<String, Object> map = new HashMap<>();
List<String> list = Arrays.asList("key1", "key3");
Map<String, Object> filteredMap = map.entrySet()
.stream()
.filter(entry -> list.stream().anyMatch(entry.getKey()::contains))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
// filteredMap 将只包含map中所有key包含在list中任意一个字符串的键值对
首先,将Map转换为它的entry集合。然后使用.stream()
将这个集合转换成流。接下来,使用filter()
方法来仅保留其中任意一个key包含在list中的entry。最后,使用collect()
方法将所保留的entry转换回Map格式。这里使用了anyMatch()
方法,它可用于检查是否存在一个元素与给定的谓词匹配并返回true。