集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils的使用
主要用它的isEmpty(final Collection<?> coll)静态方法来判断一个给定的集合是否为null或者是否长度为0。最近才发现此工具类还可以取集合的交集、并集、甚至差集,集合1:[1,2,3,4],集合2:[3,4,5,6]
上面两个集合取交集的结果是[3,4],CollectionUtils工具类提供了Collection<O> intersection(final Iterable<? extends O> a, final Iterable<? extends O> b)静态方法来取交集,参数传两个集合,可以是list,也可以是set,甚至一个list,一个set;
上面两个集合取并集的结果是[1,2,3,4,5,6],CollectionUtils工具类提供了Collection<O> union(final Iterable<? extends O> a, final Iterable<? extends O> b) ,参数同取交集类似;
CollectionUtils工具类也提供了取差集的静态方法Collection<O> disjunction(final Iterable<? extends O> a, final Iterable<? extends O> b),如果操作上面两个集合的话(第一个集合减去第二个集合),结果是[1,2,5,6],这个效果其实是两个集合的并集减去这两个集合的交集。但是实际开发中,我们可能更想要得到[1,2],CollectionUtils工具类并没有提供能直接达到这种效果的方法,不过我们可以通过两个方法的合作来达到这种效果,即用第一个集合减去这两个集合的交集:
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>();
list1.add();
list1.add();
list1.add();
list1.add();
List<Integer> list2 = new ArrayList<Integer>();
list2.add();
list2.add();
list2.add();
list2.add();
// 取交集[3, 4]
Collection<Integer> interColl = CollectionUtils.intersection(list1, list2);
System.out.println(interColl);// 打印出[3, 4]
// 取并集[1, 2, 3, 4, 5, 6]
Collection<Integer> unionColl = CollectionUtils.union(list1, list2);
System.out.println(unionColl);// 打印出[1, 2, 3, 4, 5, 6]
// 取差集[1,2]
Collection<Integer> disColl = CollectionUtils.disjunction(list1, interColl);
System.out.println(disColl);// 打印出[1, 2]
}
集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils的使用的更多相关文章
- 集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils探究(转)
之前一直以为集合工具类只有CollectionUtils,主要用它的isEmpty(final Collection<?> coll)静态方法来判断一个给定的集合是否为null或者是否长度 ...
- 集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils探究
之前一直以为集合工具类只有CollectionUtils,主要用它的isEmpty(final Collection<?> coll)静态方法来判断一个给定的集合是否为null或者是否长度 ...
- Commons-Collections 集合工具类的使用
package com.bjsxt.others.commons; import java.util.ArrayList; import java.util.List; import org.apac ...
- 集合工具类 - CollectionUtil.java
集合工具类,提供数组转LIST.数组转SET.合并集合.计算笛卡儿积等方法. 源码如下:(点击下载 - CollectionUtil.java.ArrayUtil.java.commons-lang ...
- [Guava学习笔记]Collections: 集合工具类
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3861431.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- Collections 集合工具类
集合工具类 包括很多静态方法来操作集合list 而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序.搜索以及线程安全等各种操作. 1) 排序( ...
- 实用的 集合工具类 和 String工具类
集合工具类:CollectionUtil method: 1.isNotEmpty() 不为空 2.isEmpty() 为空 举例:map集合 Map<String,String ...
- Collections集合工具类,集合嵌套,集合综合案例斗地主
1 Collections集合工具类 (可以对比Arrays工具类共同记忆) 常用方法: 例: import java.util.ArrayList; import java.util.Collect ...
- java之集合工具类Collections
Collections类简介 java.utils.Collections 是集合工具类,用来对集合进行操作.此类完全由在 collection 上进行操作或返回 collection 的静态方法组成 ...
随机推荐
- Hello World模式
http://www.rabbitmq.com/getstarted.html https://github.com/rabbitmq/rabbitmq-tutorials 环境搭建 这里使用grad ...
- 《转》深入理解Activity启动流程(二)–Activity启动相关类的类图
本文原创作者:Cloud Chou. 出处:本文链接 本系列博客将详细阐述Activity的启动流程,这些博客基于Cm 10.1源码研究. 在介绍Activity的详细启动流程之前,先为大家介绍Act ...
- 利用 Create React Native App 快速创建 React Native 应用
本文介绍的 Create-React-Native-App 是非常 Awesome 的工具,而其背后的 Expo 整个平台也让笔者感觉非常的不错.笔者目前公司是采用 APICloud 进行移动应用开发 ...
- ubuntu16.04x64环境下 tar方式 安装mysql-5.7.21 试水过程记录
前几天读研时候上铺的同学和我说到了一个问题,就是他们单位的redhat服务器给MySQL服务的数据库文件所在的磁盘空间不够了,对于这个问题我也是没有想过的,在受朋友之托下考虑自己做下复现,由于同学所在 ...
- (转)关于fflush(stdin)清空输入缓存流(C/C++)
来源:http://my.oschina.net/deanzhao/blog/79790 1. 为什么 fflush(stdin) 是错的?首先请看以下程序: #include <stdio.h ...
- 在Flask中使用Celery的最佳实践
写在前面 本最佳实践是基于作者有限的经验,欢迎大家共同讨论,可以持续维护此最佳实践.另本文中所使用的环境为Mac&Ubuntu环境,软件版本如下: Celery (4.1.0) Flask ( ...
- HDFS 和 YARN 的 HA 故障切换【转】
来源:https://blog.csdn.net/u011414200/article/details/50336735 一 非 HDFS HA 集群转换成 HA 集群二 HDFS 的 HA 自动切换 ...
- HiveSQL正则表达式的应用[转]
最近工作中数据处理方面用到很多不是特别容易处理的数据,用正则表达式的话会让语句显得特别精简,也可以用各种字符串截取函数嵌套处理(必须要有一定规律),总结一下经常用到的几个. 1.正则的通配符简介 ...
- zz 跟风小结一下孕期~
http://www.newsmth.net/nForum/#!article/FamilyLife/1754069968 发信人: milkcat (牛奶猫养了一只牛奶猫(*^__^*) 嘻嘻……) ...
- Linux进程间通信——使用共享内存(转)
一.什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存.共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式.不同进程之间共享的内存通常安排为同一段物理内存. ...