CollectionUtils.select用法
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
import org.apache.commons.collections.Transformer;
public class UserTest {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
User user0 = new User();
user0.setPassword("1111");
user0.setUsername("haha");
userList.add(user0);
User user1 = new User();
user1.setPassword("1111");
user1.setUsername("heihei");
userList.add(user1);
User user2 = new User();
user2.setPassword("2222");
user2.setUsername("lala");
userList.add(user2);
// 这是在演示:集合内取出对象,取出的对象的属性是特定值
// 这个方法的正向概念上当然是取出符合要求的对象集合,
// 但反向概念上,也就是删除集合内符合要求的对象,只要在evaluate方法的返回值上加个感叹号即可。
// .................................................
// 如果不用这个方法来达到删除效果,我们会怎么样做呢?
// 估计是使用userList.remove(Object o),使用这个方法呢,就要重写User的equals方法,
// 并且equals里面只定义password的比对,然后在此处new一
// 个User并且设置进password为"1111",然后传入此方法。
// 这样做也可以达到效果,但影响长远,影响了整个User
// 对象整个的使用,并且因为此处的依赖原因,equals方法将不能再做任何修改
// 而在项目中,如果后来者不知道此处对equals的依赖而改了equals,那你就要悲剧。
userList = (List<User>) CollectionUtils.select(userList,
new Predicate() {
public boolean evaluate(Object arg0) {
User u = (User) arg0;
return "1111".equals(u.getPassword());
}
});
// ....现在,userList中指剩下user0,user1了,咱继续
// 这是在演示:集合内取出对象某属性值的集合
// 也是集合操作很实用的方法,要不还要自己循环集合去取某属性值,然后add进事先new的list中,麻烦
List<String> userNameList = (List<String>) CollectionUtils.collect(
userList, new Transformer() {
public Object transform(Object arg0) {
User u = (User) arg0;
return u.getUsername();
}
});
// 好了,如果没错,那userNameList就是"haha"和"heihei"2个字符串了,瞧瞧效果吧
System.out.println(userNameList);
}
}
CollectionUtils.select用法的更多相关文章
- html select用法总结
本文将介绍select 原生的常用方法,这些都是经过测试,兼容ie6到ie10,及chrome,火狐等,也就是说大部分浏览器都兼容.如果大家发现有不兼容的情况,可以跟我留言. 我们对基本的用法了如指掌 ...
- 网络通信 --> select()用法
select()用法 头文件 #include <sys/time.h> #include <sys/types.h> #include <unistd.h> 定义 ...
- python+selenium七:下拉框、选项框、select用法
# from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsimpo ...
- golang学习之select用法
早期的select函数是用来监控一系列的文件句柄,一旦其中一个文件句柄发生IO操作,该select调用就会被返回.golang在语言级别直接支持select,用于处理异步IO问题. select用法同 ...
- CollectionUtils.select 集合筛选
import org.apache.commons.collections.CollectionUtils;import org.apache.commons.collections.Predicat ...
- 数据库Oracle的select用法(部分)
Oracle的select用法(部分): 1.查询所有: select * from employees; 2.加上where子句:用选择限制行 select * from employees whe ...
- 每天玩转3分钟 MyBatis-Plus - 6. select 用法
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...
- select用法&原理详解(源码剖析)(转)
今天遇到了在select()前后fd_set的变化问题,查了好久终于找到一个有用的帖子了,很赞,很详细!!原文链接如下: select用法&原理详解(源码剖析) 我的问题是: 如下图示:在se ...
- select用法
每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如<select class="selector"></select&g ...
随机推荐
- 递归实现全排列python
python递归实现"abcd"字符串全排列 1.保持a不动,动bcd 2.保持b不动,动cd 3.保持c不动,动d def pailie(head="",st ...
- DRF框架(三)——media资源路径设置、多表设计复习及补充、序列化组件(ModelSerializer)操作多表(序列化与反序列化)、多表序列化与反序列化整合(重点)
media资源路径设置 (设置好后把图片放在这个文件夹中,通过链接能访问到图片) 1.先在根目录设置一个media文件夹 2.配置settings.py,加上下面的 MEDIA_URL = '/me ...
- Haffman编码
Huffman树又称为最优树,是一种带权路径最短的树. 一.带权路径 在一棵树中我们把一个节点到另一个节点之间的通路叫做路径,在路径中每经过一个节点路径的长度就加一.如果对一个节点附上权值,则该节点的 ...
- 为 WPF 程序添加 Windows 跳转列表的支持
原文:为 WPF 程序添加 Windows 跳转列表的支持 Windows 跳转列表是自 Windows 7 时代就带来的功能,这一功能是跟随 Windows 7 的任务栏而发布的.当时应用程序要想用 ...
- 在虚拟机Linux安装Redis
在虚拟机上安装 CentOS 7 安装成功后登录Root用户进入 opt目录,下载Redis. 下载Redis 下载命令: wget http://download.redis.io/releases ...
- NMS的实现代码详解
NMS代码说明(来自Fast-RCNN) 个人觉得NMS包含很多框,其坐标为(x1,y1,x2,y2),每个框对应了一个score,我们将按照score得分降序,并将第一个最高的score的框(我们叫 ...
- python创建简单网站
前言 本方法基于web2py框架,使用web2py的完整网站数据包创建简单网站. web2py 是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具有快速.安全以及可移 ...
- 常用模块 - configparse模块
一.简介 configparser模块在Python中是用来读取配置文件的,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节点(section),每个节可以有多个参数(键=值 ...
- jQuery设置样式css
一.设置单个样式 $('.div').css('padding-top','8.6rem'); 二.设置多个样式 $('.div').css({'width': "240px",' ...
- iOS OpenCV资料收集
OpenCV iOS Title: OpenCV iOS Hello Compatibility: > OpenCV 2.4.3 Author: Charu Hans You will lear ...