集合工具類CollectionUtils、ListUtils、SetUtils、MapUtils的使用


要使用這個工具類,我們要在maven工程當中加入相應的依賴:

<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.1</version>
</dependency>

今天來總結下這些工具類。

主要用它的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(1); 
     list1.add(2); 
     list1.add(3); 
     list1.add(4); 
   
     List<Integer> list2 =  new  ArrayList<Integer>(); 
     list2.add(3); 
     list2.add(4); 
     list2.add(5); 
     list2.add(6); 
   
     // 取交集[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工具類還有好多其他常用的靜態方法。除了CollectionUtils工具類外,還有ListUtils、SetUtils工具類,里面也有好多使用的靜態方法


免責聲明!

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



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