@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工具类中常用方法的更多相关文章

  1. StringUtils、CollectionUtils工具类的常用方法

    唯能极于情,故能极于剑 欢迎来到 “程序牛CodeCow” 的博客,有问题请及时关注小编公众号 “CodeCow”,大家一起学习交流 下面将为大家演示StringUtils.CollectionUti ...

  2. CollectionUtils工具类的常用方法

    集合判断:  例1: 判断集合是否为空: CollectionUtils.isEmpty(null): true CollectionUtils.isEmpty(new ArrayList()): t ...

  3. 通过CollectionUtils工具类判断集合是否为空,通过StringUtils工具类判断字符串是否为空

    通过CollectionUtils工具类判断集合是否为空 先引入CollectionUtils工具类: import org.apache.commons.collections4.Collectio ...

  4. java代码之美(12)---CollectionUtils工具类

    java代码之美(12)---CollectionUtils工具类 这篇讲的CollectionUtils工具类是在apache下的, 而不是springframework下的CollectionUt ...

  5. CollectionUtils工具类

    CollectionUtils工具类 这篇讲的CollectionUtils工具类是在apache下的,可以使代码更加简洁和安全. 使用前需导入依赖 <dependency> <gr ...

  6. java代码(12) ---CollectionUtils工具类

    CollectionUtils工具类 CollectionUtils工具类是在apache下的,而不是springframework下的CollectionUtils 个人觉得在真实项目中Collec ...

  7. 基于StringUtils工具类的常用方法介绍(必看篇)

    前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...

  8. HttpTool.java(在java tool util工具类中已存在) 暂保留

    HttpTool.java 该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用. package kingtool; import java.io.BufferedReader ...

  9. 静态工具类中使用注解注入service

    转载:http://blog.csdn.net/p793049488/article/details/37819121 一般需要在一个工具类中使用@Autowired 注解注入一个service.但是 ...

随机推荐

  1. Mysql数据库密码忘记的解决办法

    密码忘记——破解密码 跳过授权方式,直接登录!! 1.以管理员身份打开cmd 2.停掉mysql服务端 C:\WINDOWS\system32>net stop mysql MySQL 服务正在 ...

  2. 三十一、python中urllib和requests包详解

    A.urllibimport urllibimport urllib.requestimport json '''1.loads,dumpsjson.loads():将字符串转化成python的基础数 ...

  3. LeetCode 10——正则表达式匹配

    1. 题目 2. 解答 在 回溯算法 中我们介绍了一种递归的思路来求解这个问题. 此外,这个问题也可以用动态规划的思路来解决.我们定义状态 \(P[i][j]\) 为子串 \(s[0, i)\) 和 ...

  4. 创建虚拟环境virtualenv的小问题

    在创建完虚拟环境后,settings里面虚拟环境的python编译器不是虚拟的,而是全局的,这个时候. 由于创建的虚拟环境的存储地址默认是在c盘. 自定义虚拟环境的存储地址步骤: 第一步:在配置环境变 ...

  5. CGI 环境变量

    CGI 环境变量 环境变量 意义 SERVER_NAME CGI脚本运行时的主机名和IP地址. SERVER_SOFTWARE 你的服务器的类型如: CERN/3.0 或 NCSA/1.3. GATE ...

  6. Mac014--Sourcetree安装(Git client)

    Sourcetree:git client Tool Step1:download address: https://www.sourcetreeapp.com/ Step2:要求username/u ...

  7. php7.3连接MySQL8.0报错 PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]

    报的错误: In Connection.php line : SQLSTATE[HY000] [] The server requested authentication method unknown ...

  8. 15 (H5*) JS第5天 对象

    目录 1:创建对象 2:工厂模式创建对象 3:自定义构造函数创建对象 4:自定义构造函数做了那些事情 5:字面量方式创建对象:一次性对象 6:对象总结 7:json数据类型 8:简单数据类型和复杂数据 ...

  9. [Git] 004 初识 Git 与 GitHub 之查看历史记录

    在 GitHub 的 UI 界面使用 Git 查看历史纪录 1. 右侧有个 history 2. 点击后跳转页面 3. 点击相应标题(commit 时写的),进入相应版本(历史) 4. 我选择了 I ...

  10. Java设计模式——模板方法设计模式(abstract修饰)

    解释: 一个抽象类中,有一个主方法,再定义 1...n 个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用. 解决的问题: 当功能内部一 ...