0
点赞
收藏
分享

微信扫一扫

java对比两个集合取出不重复的数据

Ichjns 2023-07-26 阅读 83

Java对比两个集合取出不重复的数据

在日常的开发中,我们经常会遇到需要对比两个集合,取出其中不重复的数据的情况。Java提供了多种方法来实现这个功能,本文将介绍一些常用的方法,并给出相应的代码示例。

方法一:使用for循环和contains方法

我们可以使用for循环和contains方法来逐个遍历其中一个集合,并判断另一个集合中是否包含相同的元素。如果不包含,则将该元素添加到结果集合中。

以下是使用这种方法的示例代码:

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

for (Integer num : list1) {
    if (!list2.contains(num)) {
        result.add(num);
    }
}

System.out.println("不重复的数据:" + result);

上述代码中,list1和list2分别表示两个集合,result表示结果集合。我们通过for循环遍历list1,判断list2中是否包含相同的元素,如果不包含,则将该元素添加到结果集合中。最后打印结果集合即可得到不重复的数据。

方法二:使用Java 8的Stream API

Java 8引入了Stream API,它提供了更简洁的代码风格来处理集合操作。我们可以使用Stream的filtercollect方法来实现对比两个集合并取出不重复的数据。

以下是使用这种方法的示例代码:

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

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

System.out.println("不重复的数据:" + result);

上述代码中,我们使用Stream的filter方法筛选出list1中不包含在list2中的元素,然后使用collect方法将结果转换成一个新的集合。最后打印结果集合即可得到不重复的数据。

方法三:使用Apache Commons Collections库

如果你不想自己写代码实现对比两个集合的功能,可以使用Apache Commons Collections库中的CollectionUtils类来简化操作。

以下是使用这种方法的示例代码:

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

Collection<Integer> result = CollectionUtils.removeAll(list1, list2);

System.out.println("不重复的数据:" + result);

上述代码中,我们使用CollectionUtils.removeAll方法来获取list1中不包含在list2中的元素,返回结果即为不重复的数据。最后打印结果即可。

总结

本文介绍了Java对比两个集合取出不重复数据的方法,并给出了相应的代码示例。你可以根据具体情况选择适合的方法来实现你的需求。不管是使用for循环和contains方法、Java 8的Stream API,还是Apache Commons Collections库,都能轻松地处理集合操作,提高开发效率。

希望本文对你理解和使用Java集合操作有所帮助!

参考资料

  • [Java 8 Stream API官方文档](
  • [Apache Commons Collections官方网站](
举报

相关推荐

0 条评论