Java 8 使用 Stream API 计算 Set<String> 和 Map<String, ?> 的差集
在 Java 8 中,可以使用 Stream API 来计算 Set
- 将 Map<String, ?> 的所有 key 转换为 Set
,可以使用 map.keySet()方法来实现。 - 使用 Stream 的
filter方法过滤掉 Set中与 Map<String, ?> 的 key 相同的元素。可以使用 !map.keySet().contains(element)来判断元素是否存在于 Map 中。 - 将过滤后的元素收集到一个新的 Set 中,可以使用
collect(Collectors.toSet())方法实现。
下面是一个示例代码:
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Set<String> set = new HashSet<>(Arrays.asList('A', 'B', 'C', 'D'));
Map<String, ?> map = new HashMap<String, Object>() {{
put('A', 1);
put('B', 2);
put('E', 3);
}};
Set<String> diff = set.stream()
.filter(element -> !map.keySet().contains(element))
.collect(Collectors.toSet());
System.out.println(diff); // 输出 [C, D]
}
}
在上面的示例中,Set
原文地址: https://www.cveoy.top/t/topic/o9qd 著作权归作者所有。请勿转载和采集!