CollectionUtils工具类中常用方法
@SuppressWarnings("rawtypes")
@Test
public void test1() {
List<String> coll = new ArrayList<String>();
coll.add("A");
coll.add("B");
coll.add("C"); List<String> coll1 = new ArrayList<String>();
coll1.add("AA");
coll1.add("BB");
coll1.add("C"); //合并coll, coll1两个集合元素(相当于求两集合的并集)
Collection union = CollectionUtils.union(coll, coll1);
System.out.println("union="+union); //union=[AA, BB, A, B, C] //去除coll集合中,在coll1集合中也有的元素,注意coll1 != null
Collection subtract = CollectionUtils.subtract(coll, coll1);
System.out.println("subtract="+subtract); //subtract=[A, B] //合并coll,coll1集合,但要排除两集合共有的元素
Collection disjunction = CollectionUtils.disjunction(coll, coll1);
System.out.println("disjunction="+disjunction); //disjunction=[AA, BB, A, B] //返回coll集合与coll1集合相同的元素(即是求两集合的交集)
Collection intersection = CollectionUtils.intersection(coll, coll1);
System.out.println("intersection="+intersection); //intersection=[C] //coll, coll1只要有一个相同的元素,就返回true
boolean containsAny = CollectionUtils.containsAny(coll, coll1);
System.out.println("containsAny="+containsAny); //containsAny=true
} @SuppressWarnings("rawtypes") @Test
public void test2() {
List<User> list = new ArrayList<User>();
User u1 = new User("zqf1", "123");
User u2 = new User("zqf2", "124");
User u3 = new User("zqf3", "125");
User u4 = new User("zqf4", "123");
list.add(u1);
list.add(u2);
list.add(u3);
list.add(u4); Collection resultList_select = CollectionUtils.select(list, new Predicate() {
@Override
public boolean evaluate(Object object) {
User u = (User) object;
// 获取用户密码为123的User
if (u.getPasswd().toString().equals("123")) {
return true;
}
return false;
}
}); //打印结果
System.out.println("resultList_select=" + resultList_select); // resultList_select=[User [username=zqf1, passwd=123], User [username=zqf4, passwd=123]] List<String> coll = new ArrayList<String>();
coll.add("A");
coll.add("B");
coll.add("C"); // 将list中passwd = 124的user对外过滤之后,其它的user对象添加到的coll集合中,返回结果是coll集合
CollectionUtils.selectRejected(list, new Predicate() {
@Override
public boolean evaluate(Object object) {
User u = (User) object;
if (u.getPasswd().toString().equals("124")) {
return true;
}
return false;
}
},coll);
System.out.println("coll="+coll);
//[A, B, C, User [username=zqf1, passwd=123], User [username=zqf3, passwd=125], User [username=zqf4, passwd=123]] //匹配密码等于123的User个数
int countMatches = CollectionUtils.countMatches(list, new Predicate() {
@Override
public boolean evaluate(Object object) {
User u = (User) object;
if (u.getPasswd().toString().equals("123")) {
return true;
}
return false;
}
});
System.out.println("countMatches="+countMatches);//countMatches=2 //匹配密码等于123的User个数
CollectionUtils.filter(list, new Predicate() {
@Override
public boolean evaluate(Object object) {
User u = (User) object;
if (u.getPasswd().toString().equals("123")) {
return true;
}
return false;
}
});
System.out.println("filter="+list);//filter=[User [username=zqf1, passwd=123], User [username=zqf4, passwd=123]]
/**
* select:此方法是创建了一个新的集合,将满足条件的数据添加到这个新集合中去
* filter:此方法是在原本集合基础上,将不满足条件的数据remove,没有创建新集合
*/ // 转换
CollectionUtils.transform(list, new Transformer() {
@Override
public Object transform(Object object) {
User u = (User) object; //如果用户的姓名等于zqf1,那么就把它的密码改成AAAA
if (u.getUsername().toString().equals("zqf1")) {
u.setPasswd("AAAA");
}
return u;
}
});
System.out.println("transform="+list);
//transform=[User [username=zqf1, passwd=AAAA], User [username=zqf2, passwd=124], User [username=zqf3, passwd=125], User [username=zqf4, passwd=123]] } /** User实体类 */ public class User implements Serializable{
private static final long serialVersionUID = 1L;
private String username;
private String passwd; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPasswd() {
return passwd;
} public void setPasswd(String passwd) {
this.passwd = passwd;
} public User(String username, String passwd) {
this.username = username;
this.passwd = passwd;
} public User() {
super();
// TODO Auto-generated constructor stub
} @Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("User [username=");
builder.append(username);
builder.append(", passwd=");
builder.append(passwd);
builder.append("]");
return builder.toString();
}
}
CollectionUtils工具类中常用方法的更多相关文章
- StringUtils、CollectionUtils工具类的常用方法
唯能极于情,故能极于剑 欢迎来到 “程序牛CodeCow” 的博客,有问题请及时关注小编公众号 “CodeCow”,大家一起学习交流 下面将为大家演示StringUtils.CollectionUti ...
- CollectionUtils工具类的常用方法
集合判断: 例1: 判断集合是否为空: CollectionUtils.isEmpty(null): true CollectionUtils.isEmpty(new ArrayList()): t ...
- 通过CollectionUtils工具类判断集合是否为空,通过StringUtils工具类判断字符串是否为空
通过CollectionUtils工具类判断集合是否为空 先引入CollectionUtils工具类: import org.apache.commons.collections4.Collectio ...
- java代码之美(12)---CollectionUtils工具类
java代码之美(12)---CollectionUtils工具类 这篇讲的CollectionUtils工具类是在apache下的, 而不是springframework下的CollectionUt ...
- CollectionUtils工具类
CollectionUtils工具类 这篇讲的CollectionUtils工具类是在apache下的,可以使代码更加简洁和安全. 使用前需导入依赖 <dependency> <gr ...
- java代码(12) ---CollectionUtils工具类
CollectionUtils工具类 CollectionUtils工具类是在apache下的,而不是springframework下的CollectionUtils 个人觉得在真实项目中Collec ...
- 基于StringUtils工具类的常用方法介绍(必看篇)
前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...
- HttpTool.java(在java tool util工具类中已存在) 暂保留
HttpTool.java 该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用. package kingtool; import java.io.BufferedReader ...
- 静态工具类中使用注解注入service
转载:http://blog.csdn.net/p793049488/article/details/37819121 一般需要在一个工具类中使用@Autowired 注解注入一个service.但是 ...
随机推荐
- 获取react中高阶组件方法
什么是高阶组件? 高阶组件就是接受一个组件作为参数并返回一个新组件的函数.这里需要注意高阶组件是一个函数,并不是组件,这一点一定要注意.同时这里强调一点高阶组件本身并不是 React API.它只是一 ...
- Python解决NameError: name 'reload' is not defined的问题
遇到这个问题,对于 Python 2.X: import sys reload(sys) sys.setdefaultencoding("utf-8") 对于 Python 3.3 ...
- GMS测试常用命令CTS>S&VTS
本文档介绍一下cts,gts,sts,vts,cts-on-gsi等测试的常用命令,基于Android9. [附件]Google官网的命令网页. 常用通用命令参数: 列出历史测试结果:l r 指定设备 ...
- 【ABAP系列】SAP ABAP 仓库库存-物料拆分的算法
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 仓库库存-物料 ...
- mooc-IDEA 列操作--005
十一.IntelliJ IDEA -列操作 实例:根据HTTP请求JSON文件,生成一个枚举类 Step1:创建一个枚举类,把要转换的JSON串粘贴进来. 最终要实现效果 Step2:选中第一个100 ...
- chapter2
Chapter2 Tip1 静态工厂方法代替构造器 公有的静态方法,只是一个返回类实例的静态方法. 静态工厂方法的优势: 优势一: 有名称,如果构造器本身没有正确的描述被返回的对象,具有适当名称的静态 ...
- python函数-作用域
可以把作用域”看成是变量的容器.当作用域被销毁时,所有保存在该作用 域内的变量的值就被丢弃了,只有一个全局作用域,它是在程序开始时创建的.如 果程序终止,全局作用域就被销毁,它的所有变量就被丢弃了. ...
- [Vim 填坑] 01 Vim 中替换与注释的补充
目录 1. print( 坑的信息 ) 2. 开始填坑 (1) :n1,n2s/old/new/gc 的后续命令 ^E ^Y (2) 利用"V-可视"模式进行多行注释 1. pri ...
- mysql续集(查询部分)
mysql查询部分,从基础的查询到关键字,where子句,group by, order by, limit ,having,子查询分为from子查询和where子查询,左连接和右连接,内连接的连表查 ...
- Java类和对象的内存分配
类的加载时机: 1.创建对象 2.调用类的静态成员 3.加载子类 类在实例化后的内存分配 1.每次创建对象时,都需要进行加载和创建2个操作: ① 先去判断需要的类是否已经加载,如果已经加载了,则无需再 ...