CollectionUtils工具类的使用
来自:小小程序员。 本文仅作记录
org.apache.commons.collections包下的CollectionUtils工具类,下面说说它的用法:
一、集合判空
通过CollectionUtils工具类的isEmpty方法可以轻松判断集合是否为空,isNotEmpty方法判断集合不为空。
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);
if (CollectionUtils.isEmpty(list)) {System.out.println("集合为空");
}
if (CollectionUtils.isNotEmpty(list)) {System.out.println("集合不为空");
}
二、对两个集合进行交、并、补、差集操作
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);运行结果:
[1, 2, 3, 4]
[2]
[1, 3, 4]
[1, 3]
三、从一个对象的集合中,获取某一属性的集合
100个Java工具类之9:apache包下的CollectionUtils
首发2023-07-08 18:00·一名小小程序员
该系列为java工具类系列,主要展示100个常用的java工具类。
本系列工具类的核心目的主要有三点:
1,以便他用:提供可用的Java工具类,方便大家使用,避免重复造轮子
2,个人记录:作为个人记录,同时督促自己学习总结
3,为初学者提供思路,相互交流,共同进步
当然,很多细节部分经不起推敲,如存在部分代码不规范、注释不详细、格式不统一等问题,还望阅读者多多包涵,多提意见。
本文主要讲述:
apache的
org.apache.commons.collections包下的CollectionUtils工具类。
一、集合判空
通过CollectionUtils工具类的isEmpty方法可以轻松判断集合是否为空,isNotEmpty方法判断集合不为空。
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);
if (CollectionUtils.isEmpty(list)) {System.out.println("集合为空");
}
if (CollectionUtils.isNotEmpty(list)) {System.out.println("集合不为空");
}
二、对两个集合进行交、并、补、差集操作
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);
运行结果:
[1, 2, 3, 4]
[2]
[1, 3, 4]
[1, 3]
三、从一个对象的集合中,获取某一属性的集合
从一个对象的集合中,获取某一属性的集合。如,从人员信息集合中获取人员姓名的集合
List<Map<String, Object>> list = new ArrayList<>();Map<String, Object> map1 = new HashMap<>();map1.put("name", "张三");map1.put("age", 1);Map<String, Object> map2 = new HashMap<>();map2.put("name", "李四");map2.put("age", 2);Map<String, Object> map3 = new HashMap<>();map3.put("name", "王五");map3.put("age", 3);list.add(map1);list.add(map2);list.add(map3);List<String> nameList = (List<String>) CollectionUtils.collect(list, new Transformer() {public Object transform(Object arg0) {Map<String, Object> map = (Map<String, Object>) arg0;return map.get("name");}});System.out.println(nameList);运行结果:
[张三, 李四, 王五]
四、从一个对象集合中过滤出只符合要求的对象
List<Map<String, Object>> list = new ArrayList<>();List<Map<String, Object>> tarList = new ArrayList<>();Map<String, Object> map1 = new HashMap<>();map1.put("name", "张三");map1.put("age", 1);Map<String, Object> map2 = new HashMap<>();map2.put("name", "张三");map2.put("age", 2);Map<String, Object> map3 = new HashMap<>();map3.put("name", "王五");map3.put("age", 3);list.add(map1);list.add(map2);list.add(map3);CollectionUtils.filter(list, new Predicate(){public boolean evaluate(Object arg0) {Map<String, Object> map = (Map<String, Object>)arg0;return "张三".equals((String)map.get("name"))&& 2 == Integer.parseInt(String.valueOf(map.get("age")));}});System.out.println(list);执行结果:
[{name=张三, age=2}]
相关文章:
CollectionUtils工具类的使用
来自:小小程序员。 本文仅作记录 org.apache.commons.collections包下的CollectionUtils工具类,下面说说它的用法: 一、集合判空 通过CollectionUtils工具类的isEmpty方法可以轻松判断集合是否为空,isNotEmpty方法判断集合不为…...
基于Nonconvex规划的配电网重构研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
yolo系列笔记(v4-v5)
YOLOv4 YOLOv4网络详解_哔哩哔哩_bilibili 网络结构,在Yolov3的Darknet的基础上增加了CSP结构。 CSP的优点: 加强CNN的学习能力 去除计算瓶颈。 减少显存的消耗。 结构为: 、 其实还是类似与残差网络的结构,保留下采样之前…...
小白如何高效刷题Leetcode?
文章目录 为什么会有这样的现象?研究与学习人生而有别 如何解决困境?1. 要补的:化抽象为具体,列举找规律2. 要补的:前人总结的套路3. 与人交流探讨4. 多写总结文章 总结 明明自觉学会了不少知识,可真正开始…...
使用IDEA打jar包的详细图文教程
1. 点击intellij idea左上角的“File”菜单 -> Project Structure 2. 点击"Artifacts" -> 绿色的"" -> “JAR” -> Empty 3. Name栏填入自定义的名字,Output ditectory 选择 jar 包目标目录,Available Elements 里右击…...
《MySQL 实战 45 讲》课程学习笔记(二)
日志系统:一条 SQL 更新语句是如何执行的? 与查询流程不一样的是,更新流程还涉及两个重要的日志模块:redo log(重做日志)和 binlog(归档日志)。 重要的日志模块:redo l…...
微软亚研院提出模型基础架构RetNet或将成为Transformer有力继承者
作为全新的神经网络架构,RetNet 同时实现了良好的扩展结果、并行训练、低成本部署和高效推理。这些特性将使 RetNet 有可能成为继 Transformer 之后大语言模型基础网络架构的有力继承者。实验数据也显示,在语言建模任务上: RetNet 可以达到与…...
探索单例模式:设计模式中的瑰宝
文章目录 常用的设计模式有以下几种:一.创建型模式(Creational Patterns):二.结构型模式(Structural Patterns):三.行为型模式(Behavioral Patterns):四.并发…...
Bobo String Construction 2023牛客暑期多校训练营4-A
登录—专业IT笔试面试备考平台_牛客网 题目大意:给出一字符串t,求一个长为n的字符串,使tst中包含且仅包含两个t 1<n<1000;测试样例组数<1000 思路:一开始很容易想到如果t里有1,s就全0,否则s就全…...
【React学习】React父子组件通讯
1. 父到子传值 在React框架中,父组件可以通过 props 将数据传递给子组件。子组件通过读取 props 来访问父组件传递过来的数据。 当父组件的 props 发生变化时,React 会自动重新渲染子组件以确保子组件中使用的数据保持同步。 父组件 import React, {…...
NASM汇编
1. 前置知识 1. 汇编语言两种风格 intel:我们学的NASM就属于Intel风格AT&T:GCC后端工具默认使用这种风格,当然我们也可以加选项改成intel风格 2. 代码 1. 段分布 .text: 存放的是二进制机器码,只读.data: 存放有初始化的…...
第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面
文章目录 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面使用 HL7 架构结构页面查看文档类型列表查看消息结构查看段结构 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面 使用 HL7 架构结构页面 通过 HL7 架构页面,可以导入和查看 HL7 版本 2 架构规范。…...
spring注解驱动开发(一)
1、需要导入的spring框架的依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.12.RELEASE</version></dependency>2、Configuration 设置类为配置类 3、Annota…...
Vue3搭建启动
Vue3搭建&启动 一、创建项目二、启动项目三、配置项目1、添加编辑器配置文件2、配置别名3、处理sass/scss4、处理tsx(不用的话可以不处理) 四、添加Eslint 一、创建项目 npm create vite 1.project-name 输入项目名vue3-vite 2.select a framework 选择框架 3.select a var…...
阻塞队列(模拟实现)
概念 阻塞队列是带有阻塞功能的队列 特性 当队列满的时候,继续入队列,就会出现阻塞,阻塞到其他线程从队列中取走元素为止 当队列空的时候,继续出队列,也会发生阻塞,阻塞到其他线程往队列中添加元素为止 特…...
VScode中python的相对路径与绝对路径 FileNotFoundError: [Errno 2] No such file or directory
VScode中,python里的相对路径是相对于当前工作目录来定位的,而当前的工作目录在VScode中下方的终端窗口会有提示: 说明此时的工作目录并非当前python文件所在的目录,而是C:\Users\xxxxx(你的用户名)。因此,使用VScode…...
Unity XML2——C#读写XML
一、XML 文件的存放位置 (一)只读不写的 XML 放在 Resouces 或者 StreamingAssets 文件夹下,详见 Unity基础3——Resources资源动态加载_weixin_53163894的博客-CSDN博客。 (二)动态存储的 XML 放在 Applica…...
带wiringPi库的交叉编译 ---宿主机x86Ubuntu,目标机ARMv8 aarch64(香橙派)
带wiringPi库的交叉编译如何进行 先交叉编译wiringPi库,编译出的库适合香橙派,这时候交叉编译可执行程序的平台和链接库的格式也是正确的,然后通过-I和-L来指定链接的wiringPi库的头文件和库的位置,但是现在还没有学习过…...
数据仓库基础知识
什么是数据仓库? 数仓,DataWarehouse,是一个 面向主题的、集成的、稳定的、与时间相关的 数据集合。 而这个数据集合的建立,是为了支持管理者的决策过程。 也就是说,我们通过建设数仓,为业务中的流程改进、…...
M 芯片的 macos 系统安装虚拟机 centos7 网络配置
centos 安装之前把网络配置配好或者是把网线插好 第一步找到这个 第二步打开网络适配器 选择图中所指位置 设置好之后 开机启动 centos 第三步 开机以后 编写网卡文件保存 重启网卡就可以了,如果重启网卡不管用,则重启虚拟机即可 “ ifcfg-ens160 ” 这…...
书匠策AI实测揭秘:毕业论文全流程竟然能这样“偷懒“?
各位同学,我是一个专门教别人写论文的博主。说实话,每次看到评论区有人问"论文到底怎么开头",我都想穿越屏幕去帮他敲键盘。 但今天不一样,我要给你们安利一个我自己偷偷用了好几次的工具——书匠策AI。注意࿰…...
Wot Design Uni异步上传功能:从基础到高级的完整指南
Wot Design Uni异步上传功能:从基础到高级的完整指南 【免费下载链接】wot-design-uni 一个基于Vue3TS开发的uni-app组件库,提供70高质量组件,支持暗黑模式、国际化和自定义主题。 项目地址: https://gitcode.com/gh_mirrors/wo/wot-design…...
BarrageGrab:重塑直播数据采集的技术范式
BarrageGrab:重塑直播数据采集的技术范式 【免费下载链接】BarrageGrab 抖音快手bilibili直播弹幕wss直连,非系统代理方式,无需多开浏览器窗口 项目地址: https://gitcode.com/gh_mirrors/ba/BarrageGrab 在数字直播经济蓬勃发展的今天…...
微信QQ语音解码终极指南:silk-v3-decoder免费解锁音频文件
微信QQ语音解码终极指南:silk-v3-decoder免费解锁音频文件 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. …...
DAG方法与自变量筛选 【9天实用统计学公益训练营Day3-3】
关注公众号的朋友都知道,郑老师我之前连续4年开设了“30天学会医学统计学”,从理论到实操,一步一步教会大家统计学、SPSS课程。2026年,我们对这门课程进行全新升级!课程时间大幅度缩短,内容大幅度提升&…...
Unity工业级机械仿真:刚体约束链与运动学反解实战
1. 这不是“玩具模型”,而是一套可投产验证的机械运动逻辑沙盒在Unity里做机械结构仿真,很多人第一反应是“做个动画演示”——齿轮转得漂亮、连杆动得丝滑、液压缸伸缩带点粒子特效,导出个MP4发给客户就算交付。但MGS-Machinery这个项目完全…...
车联网TBOX开发实战六,CAN特性
接上篇芯片及系统方案基础,本篇想写个远程控制,但想想整个交互链路较长,涉及到的基础很多,决定先从最基础的介绍一下,CAN,就是与车辆交互的核心总线本篇不做CAN基础的全面讲解,网络上有大篇幅的…...
2026网盘怎么选:别只盯“不限速”,更该看同步稳定性与数据安全
很多人换网盘的导火索是“限速”,但真正拉开体验差距的,往往是:同步是否稳定、复杂网络下是否容易失败、多人协作有没有权限与版本控制、数据安全与合规是否站得住脚。下面这篇不再只比较“快不快”,而是用更贴近长期使用的维度&a…...
百度文库纯净打印助手:3步实现无广告文档导出
百度文库纯净打印助手:3步实现无广告文档导出 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 百度文库纯净打印助手是一个开源JavaScript脚本,专为解决百度文库文档阅读和保…...
零基础掌握罗技鼠标宏:让你的PUBG压枪更稳定
零基础掌握罗技鼠标宏:让你的PUBG压枪更稳定 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中难以控制的武器后坐…...
