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();
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM