查看原文
其他

今日代码大赏 | 集合高阶操作

编程导航-松柏 程序员鱼皮 2024-03-23

在开发的过程中,我们偶尔会遇到需要对集合进行高阶操作的场景。

如差集、并集、补集等,但 Java 本身并没有提供这些方法。

那我们要用的时候怎么办呢?

其实很多工具包都提供了现成的方法,

比如 apache 的 commons-lang3 工具包,

示例代码如下:

import org.apache.commons.collections4.CollectionUtils;

/**
 * 有时候我们需要对已有的两个集合进行操作,比如取交集或者并集等。
 */

 @SpringBootTest
public class MainApplicationTest {

  @Test
  public void testCompare() {
      List<Integer> list = new ArrayList<>();
      list.add(2);
      list.add(1);
      list.add(3);

      List<Integer> list2 = new ArrayList<>();
      list2.add(2);
      list2.add(4);

      //获取并集
      Collection<Integer> unionList = CollectionUtils.union(list, list2);
      System.out.println(unionList);

      //获取交集
      Collection<Integer> intersectionList = CollectionUtils.intersection(list, list2);
      System.out.println(intersectionList);

      //获取交集的补集
      Collection<Integer> disjunctionList = CollectionUtils.disjunction(list, list2);
      System.out.println(disjunctionList);

      //获取差集
      Collection<Integer> subtractList = CollectionUtils.subtract(list, list2);
      System.out.println(subtractList);
  }
  
}

完整代码片段来源于代码小抄,欢迎点击进入小程序阅读!

在线访问:https://www.codecopy.cn/post/10zoqu

更多优质代码欢迎进入小程序查看!

往期推荐

今日代码大赏 | 饿汉式单例模式

今日代码大赏 | 快速排序

今日代码大赏 | 阶乘

今日代码大赏 | 全局异常处理

今日代码大赏 | 接口日志输出

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存