apache下的CollectionUtils工具类

目录

依赖

这个包下

1.安全检查指定的集合是否为空

2.空 安全检查指定的集合是否为空

3.(String)类型中的集合-并集 union

4.(String)类型中的集合-交集

5.(String)类型中交集的补集

6.(String)类型中差集(扣除)

7.containsAny()方法:判断两个集合是否有交集,如果存在交集则返回true,否则返回false。

8.是否全部包含: containsAll


依赖

    <dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.3</version></dependency>

这个包下

import org.apache.commons.collections4.CollectionUtils;

1.安全检查指定的集合是否为空

@Testpublic void Users12() {List<Users> userList = new ArrayList<>();userList.add(new Users(1, "user1", "password1", 25));userList.add(new Users(2, "user2", "password2", 17));userList.add(new Users(3, "user3", "password3", 19));userList.add(new Users(4, "user4", "password4", 18));userList.add(new Users(5, "user5", "password5", 19));userList.add(new Users(6, "user6", "password6", 20));/*** 空 安全检查指定的集合是否为空*///CollectionUtils.isEmpty(Collection<?> coll)if(CollectionUtils.isEmpty(userList)){System.out.println("集合为空");} else {System.out.println("集合不为空");}}

2.空 安全检查指定的集合是否为空

 @Testpublic void Users12() {List<Users> userList = new ArrayList<>();userList.add(new Users(1, "user1", "password1", 25));userList.add(new Users(2, "user2", "password2", 17));userList.add(new Users(3, "user3", "password3", 19));userList.add(new Users(4, "user4", "password4", 18));userList.add(new Users(5, "user5", "password5", 19));userList.add(new Users(6, "user6", "password6", 20));/*** 空安全检查指定的集合是否为空。*/// CollectionUtils.isNotEmpty(Collection<?> coll)if(CollectionUtils.isNotEmpty(userList)){System.out.println("集合不为空");} else {System.out.println("集合为空");}}

3.(String)类型中的集合-并集 union

 @Testpublic void Users12() {String[] A = new String[] { "A", "2", "3", "4"};String[] B = new String[] { "3", "C", "5", "A" };List<String> listA = Arrays.asList(A);List<String> listB = Arrays.asList(B);//1、并集 union ,就是重复的元素只留一个,本身就是一个的就留System.out.println(CollectionUtils.union(listA, listB));}

4.(String)类型中的集合-交集

@Testpublic void Users18() {String[] A = new String[] { "A", "2", "3", "4"};String[] B = new String[] { "3", "C", "5", "A" };List<String> listA = Arrays.asList(A);List<String> listB = Arrays.asList(B);//交集System.out.println(CollectionUtils.intersection(listA, listB));}

5.(String)类型中交集的补集

 @Testpublic void Users18() {String[] A = new String[] { "A", "2", "3", "4"};String[] B = new String[] { "3", "C", "5", "A" };List<String> listA = Arrays.asList(A);List<String> listB = Arrays.asList(B);//交集的补集System.out.println(CollectionUtils.disjunction(listA, listB));}

6.(String)类型中差集(扣除)

 @Testpublic void Users18() {String[] A = new String[]{"A", "2", "3", "4"};String[] B = new String[]{"3", "C", "5", "A"};List<String> listA = Arrays.asList(A);List<String> listB = Arrays.asList(B);//4、差集(扣除)System.out.println(CollectionUtils.subtract(listA, listB));//输出:[2, 4]System.out.println(CollectionUtils.subtract(listB, listA));//输出:[C, 5]}

7.containsAny()方法:判断两个集合是否有交集,如果存在交集则返回true,否则返回false。

 @Testpublic void Users18() {String[] A = new String[]{"A", "2", "3", "4"};String[] B = new String[]{"3", "C", "5", "A"};List<String> listA = Arrays.asList(A);List<String> listB = Arrays.asList(B);if (CollectionUtils.containsAny(listA,listB)){System.out.println("有相同的数据");}else {System.out.println("没有相同的数据");}}

8.是否全部包含: containsAll

 @Testpublic void Users18() {String[] A = new String[]{"A", "2", "3", "4"};String[] B = new String[]{"3", "C", "5", "A"};List<String> listA = Arrays.asList(A);List<String> listB = Arrays.asList(B);if (CollectionUtils.containsAll(listA,listB)){System.out.println("数据完全相同");}else {System.out.println("数据有不相同的");}System.out.println("-----------------------------------------");String[] A2 = new String[]{"A", "3"};String[] B2 = new String[]{"3", "A"};List<String> listA2 = Arrays.asList(A2);List<String> listB2 = Arrays.asList(B2);if (CollectionUtils.containsAll(listA2,listB2)){System.out.println("数据完全相同");}else {System.out.println("数据有不相同的");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/635065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UI组件在线预览,程序员直呼“不要太方便~”

一、介绍 以往大家如果想查看组件的使用效果&#xff0c;需要打开DevEco Studio构建工程。现在为了便于大家高效开发&#xff0c;文档上线了JS UI组件在线预览功能&#xff0c;无需本地构建工程&#xff0c;在线即可修改组件样式等参数、一键预览编译效果。程序员直呼&#xff…

可视化k8s页面(Kubepi)

Kubepi是一个简单高效的k8s集群图形化管理工具&#xff0c;方便日常管理K8S集群&#xff0c;高效快速的查询日志定位问题的工具 随便在哪个节点部署&#xff0c;我这里在主节点部署 docker pull kubeoperator/kubepi-server docker run --privileged -itd --restartunless-st…

Webpack5入门到原理14:生产模式介绍

生产模式是开发完成代码后&#xff0c;我们需要得到代码将来部署上线。 这个模式下我们主要对代码进行优化&#xff0c;让其运行性能更好。 优化主要从两个角度出发: 优化代码运行性能 优化代码打包速度 生产模式准备 我们分别准备两个配置文件来放不同的配置 1. 文件目录…

求助帖(setiosflags)的左右对齐问题:

以后自己要注意&#xff0c;如果两个相互矛盾的标志同时被设置&#xff0c;如先设置 setiosflags(ios::right)&#xff0c;然后又设置 setiosflags(ios::left)&#xff0c;那么结果可能就是两个标志都不起作用。因此&#xff0c;在设置了某标志&#xff0c;又要设置其他与之矛盾…

RabbitMQ-生产者可靠性

一、生产者重连 1、概念 由于网络波动导致客户端无法连接上MQ&#xff0c;这是可以开启MQ的失败后重连机制。 注意&#xff1a; 是连接失败的重试&#xff0c;而不是消息发送失败后的重试。 2、开启配置 spring:rabbitmq:template:retry:enabled: true # 是否启用重试机制ma…

尝试计算π的值,并统计π的小数部分中每个数字出现的次数,当所有数字出现次数相等时停止计算

from mpmath import mp # 设置π的精度 mp.dps 100000 # 设置所需精度 # 初始化计数器 digit_counts [0] * 10 # 开始尝试计算并统计 for i in range(1, mp.dps 1): # 获取当前精度的π值 pi_str str(mp.pi)[2:] # 跳过"3." # 统计各数字出现次数 …

【RabbitMQ】RabbitMQ安装与使用详解以及Spring集成

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《RabbitMQ实战》。&#x1f3af;&#x1f3af; &am…

java实现红黑树

红黑树 红黑树是一种自平衡二叉查找树&#xff0c;其中每个节点都有一个颜色属性&#xff0c;颜色为红色或黑色。它的特性保证了树在插入和删除操作后仍然保持大致的平衡&#xff0c;使得查找操作能够在对数时间内完成。以下是红黑树的一些基本性质&#xff1a; 每个节点是红…

JS 数组对象的 34 种官方用法

数组&#xff08;Array&#xff09;作为 JavaScript 位列第一的对象&#xff0c; 其重要性可见一般&#xff0c;在这里就让我们来详细的扒一扒数组对象都有哪些方法&#xff0c;它们分别能对数组做什么。 一、数组是什么 官方对于 Array&#xff08;数组&#xff09;对象的解释…

面试题16.15.珠玑妙算

前言 这两天突然发现力扣上还是有我能写出来的题的&#xff0c;虽说都是简单级别的&#xff08;以及一道中等的题&#xff09;&#xff0c;但是能写出来力扣真的太开心了&#xff0c;&#xff08;大佬把我这段话当个玩笑就行了&#xff09;&#xff0c;于是乎&#xff0c;我觉…

C#,入门教程(21)——命名空间(namespace)与程序结构的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(20)——列表&#xff08;List&#xff09;的基础知识https://blog.csdn.net/beijinghorn/article/details/124094382 编写软件&#xff08;大软件称为系统&#xff09;与盖大楼一个道理。 假设咱们现在需要盖一座名为“天梯大厦”的…

kubernetes工作负载-DamonSet

一、DemonSet的介绍 1、什么是DemonSet DaemonSet 控制器是用来保证在所有节点上运行一个 Pod 的副本当有节点加入集群时&#xff0c; 也会为他们新增一个 Pod。 当有节点从集群移除时&#xff0c;这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 简而言之…

进入docker容器,vi: command not found

问题描述&#xff1a; 进入docker容器&#xff0c;查看文件执行vim 命令&#xff0c;报错 vim: command not found。搜索解决方案&#xff0c;说执行一下 apt-get install vim命令&#xff0c;然后又报错 Unable to locate package vim。 解决&#xff1a; 1.执行 npt-get up…

YOLOv3:算法与论文详细解读

【yolov1&#xff1a;背景介绍与算法精讲】 【yolo9000&#xff1a;Better, Faster, Stronger的目标检测网络】 目录 一、YOLOv3概述二、创新与改进三、改进细节3.1 多尺度特征3.2 不同尺度先验框3.3 完整的网络结构3.3 Darknet-53主干网络3.4 残差网络3.4.1 恒等映射3.4.2 网络…

git提交代码到远端仓库的方法详解

一、何为git git就是版本控制器&#xff0c;就比如说你新建了一个git文件夹&#xff0c;里面用于存放你的C语言实习报告&#xff0c;现在要用git对该文件夹进行接管。当你修改了你的C语言实习报告点击保存之后&#xff0c;就用git的相关命令&#xff0c;提交给git&#xff0c;让…

go语言(十)---- 面向对象封装

面向对象的封装 package mainimport "fmt"type Hero struct {Name stringAd intLevel int }func (this Hero) Show(){fmt.Println("Name ", this.Name)fmt.Println("Ad ", this.Ad)fmt.Println("Level ", this.Level)}func (thi…

priority_queue的使用与模拟实现(容器适配器+stack与queue的模拟实现源码)

priority_queue的使用与模拟实现 引言&#xff08;容器适配器&#xff09;priority_queue的介绍与使用priority_queue介绍接口使用默认成员函数 size与emptytoppush与pop priority_queue的模拟实现构造函数size与emptytoppush与pop向上调整建堆与向下调整建堆向上调整建堆向下调…

个人实现的QT拼图游戏(开源),QT拖拽事件详解

文章目录 效果图引言玩法 拖拽概念基本概念如何在Qt中使用拖放注意事项 游戏关键问题总结 效果图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c6dd66befd314442adf07e1dec0d550c.png 引言 在学习QT demo时&#xff0c;发现有一个拼图demo&#xff0c;介绍拖…

RHCE: 主从DNS服务器配置 (实现正反向解析)

主服务器配置: 准备工作: #关闭防火墙 [root192 ~]# systemctl stop firewalld#关闭selinux [root192 ~]# setenforce 0#查看selinux状态 [root192 ~]# getenforce Permissive#安装bind包 [root192 ~]# yum install bind -y#查询软件包下的文件 /etc/named.conf #主配置文…

美易官方:美股芯片股盘前走高

随着全球经济的逐步复苏&#xff0c;特别是科技行业的快速发展&#xff0c;芯片股作为科技板块的重要组成部分&#xff0c;在美股市场的表现尤为引人注目。近期&#xff0c;美股芯片股在盘前交易中持续走高&#xff0c;其中AMD的涨幅超过2%&#xff0c;ARM和英伟达也分别涨超1%…