首页 > 其他分享 >apache包下的CollectionUtils

apache包下的CollectionUtils

时间:2023-11-25 20:12:34浏览次数:23  
标签:Map 包下 CollectionUtils list put add apache new

org.apache.commons.collections包下的CollectionUtils工具类。

<!--CollectionUtils -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

集合判空

通过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<>();
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(map.get("name"))
            && 2 == Integer.parseInt(String.valueOf(map.get("age")));
    }
});
System.out.println(list);
//执行结果:
//[{name=张三, age=2}]

 

标签:Map,包下,CollectionUtils,list,put,add,apache,new
From: https://www.cnblogs.com/xfeiyun/p/17855938.html

相关文章

  • linux Centos 8.2.2004 安装Apache
    Apache服务器安装步骤1.下载安装包至安装目录,wgethttps://mirrors.aliyun.com/apache/httpd/http-2.4.58.tar.bz22.在安装目录下解压文件 tar -xjvf http-2.4.58.tar.bz23.进入解压目录安装文件  3.1进入解压目录cdhttp-2.4.58.tar.bz2  3.2安装文件yuminsta......
  • Apache Bench(ab 压力测试工具)的安装与使用
    1.ab安装下面介绍在liunx和windows上的安装1.1、linux yum 安装yuminstallhttpd-tools或者yum-yinstallhttpd-tools测试安装是否成功:[root@vichtml]#ab-VThisisApacheBench,Version2.3<$Revision:655654$>Copyright1996AdamTwiss,Zeus......
  • 随笔(三十三)『apache FtpClient操作文件遇到的坑』
    1、需求扫描完文件后把文件放到backup备用目录下2、使用方案用了io流一行行读取用了ftpClient.retrieveFileStream(path)获取流用了ftpClient.changeWorkingDirectory(backupDirPath)切换目录判断是否需要创建备用目录用了ftpClient.rename(sourceFilePath,backupFilePath......
  • apache ftpserver服务器安装及服务启动问题解决
     在安装apacheftpserver后作为系统服务启动时遇到不能启动成功的问题,在网上各种搜索,发现很多人也遇到了同样的问题,折腾了1天,尝试了添加dll动态链接库、tomcat.exe替换ftpd.exe等还是没搞定。最后查看服务安装脚本service.bat,发现问题所在,现记录下过程中遇到的坑,分享出来参考,避......
  • apache服务
    apache服务安装包httpd服务名称:httpd 是一个网站服务,用于去访问主页的服务 配置文件名称:服务的根目录:/etc/httpd主配置文件:/etc/httpd/conf/httpd.conf网站数据目录:/var/www/html访问日志:/var/log/httpd/access_log错误日志:/var/log/httpd/error_log ......
  • 解决问题:Unable to start embedded container; nested exception is java.lang.NoSuch
    因为有重复的jar原因:springboot有自己的tomcat运行环境我们又在构件路径中添加了tomcat解决方法:把项目构件路径中的tomcat给移除 ......
  • Apache Spark 认证绕过漏洞(CVE-2020-9480)研究
    一、ApacheSpark简介Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。项目是用Scala进行编写。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含Spa......
  • golang环境和第三方爬虫包下载安装一把成
    复制代码在CentOS7.6中命令行中全部粘贴执行,golang环境和第三方爬虫包全部安装一把成。wgethttps://golang.google.cn/dl/go1.21.4.linux-amd64.tar.gztar-zxvfgo1.21.4.linux-amd64.tar.gz-C/usr/local/cat>>.bash_profile<<"EOF"exportGOROOT=/usr/local/goexpo......
  • Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)
    ApacheShiro1.2.4反序列化漏洞(CVE-2016-4437)ApacheShiro是一款开源安全框架,提供身份认证、授权、密码学和会话管理。Shiro框架直观、易用,同时也提供健壮的安全性。ApacheShiro1.2.4以及以前部版本中,加密的用户信息序列号后存储在名为remember-me的Cookie中,攻击者开源使用Shi......
  • Apache Kylin4 分布式的分析型数据仓库
    https://kylin.apache.org/cn/docs/index.htmlApacheKylin4概述欢迎来到ApacheKylin™AnalyticalDataWarehouseforBigDataApacheKylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBayInc......