java两个集合怎么取差集
  Scjmn2WXb8Ak 2023年12月22日 38 0

Java中两个集合怎么取差集

在Java中,如果我们想要获取两个集合的差集,即获取在第一个集合中出现但不在第二个集合中出现的元素,可以使用以下几种方法来实现。

方法一:使用retainAll方法

Java中的Collection接口提供了retainAll方法,该方法用于从当前集合中移除所有不在指定集合中的元素,从而得到两个集合的差集。具体示例代码如下:

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6, 7, 8));

list1.retainAll(list2);

System.out.println("差集:" + list1);

上述代码中,我们创建了两个ArrayList集合list1和list2,并分别初始化了一些元素。然后,我们调用list1的retainAll方法,将list2作为参数传入,该方法会从list1中移除所有不在list2中的元素,最终得到的list1就是两个集合的差集。

方法二:使用Stream API

Java 8引入了Stream API,我们可以使用该API中的filter方法来过滤集合元素,从而得到差集。具体示例代码如下:

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6, 7, 8));

List<Integer> diff = list1.stream()
        .filter(e -> !list2.contains(e))
        .collect(Collectors.toList());

System.out.println("差集:" + diff);

上述代码中,我们使用Stream API中的filter方法来过滤list1的元素,只保留不在list2中出现的元素。最后,使用collect(Collectors.toList())方法将过滤结果收集到一个新的List集合中,即得到两个集合的差集。

方法三:使用Apache Commons Collections库

Apache Commons Collections库是一个常用的Java工具库,提供了许多操作集合的工具类。我们可以使用CollectionUtils类中的subtract方法来获取两个集合的差集。具体示例代码如下:

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6, 7, 8));

List<Integer> diff = (List<Integer>) CollectionUtils.subtract(list1, list2);

System.out.println("差集:" + diff);

上述代码中,我们使用CollectionUtils类中的subtract方法,将list1和list2作为参数传入。该方法会返回一个新的集合,其中包含list1中存在但list2中不存在的元素,即得到两个集合的差集。

总结一下,我们可以使用 retainAll 方法、Stream API 或者 Apache Commons Collections库中的 subtract 方法来取两个集合的差集。这些方法都很简单易用,根据实际情况选择合适的方法即可。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: java接口外放 下一篇: java解析txt日志
  1. 分享:
最后一次编辑于 2023年12月22日 0

暂无评论

推荐阅读
  T3It887JLZgD   14小时前   6   0   0 Java
Scjmn2WXb8Ak