List交集、並集、補集、差集


最近回看了一下List的基礎,目前網上主流得對List交並補差有兩種方式

交集

交集就是兩個集合都有的部分  listA{ 1,2,3,4 } listB{2,3,4,5} 那A交B結果就是{2,3,4}   

並集

並集就是將兩個集合中所有的元素加在一起  listA{ 1,2,3,4 } listB{2,3,4,5}  那么A並B結果就是{1,2,2,3,3,4,4,5}

差集

差集就是兩集合元素相減,只保留前面集合中剩下的元素 listA{ 1,2,3,4 } listB{2,3,4,5} 那么A差B結果{1}       如果B差A 那么結果{5}

補集

我對補集的理解有點偏,但是比較好記,高中的時候就這么記得, A補B   listA{ 1,2,3,4 } listB{2,3,4,5}  結果{5} 其實就是B差A     讀法:A關於B的相對補集是{5}

B補A 結果{1} 讀法B關於A的補集是{1}

 

第一種:CollectionUtils工具包中的四個方法;該類所在包org.apache.commons.collections.CollectionUtils

   //並集      
 CollectionUtils.union(a, b);      
   //交集      
CollectionUtils.intersection(a, b);      
   //交集的補集      
CollectionUtils.disjunction(a, b);      
   //集合相減      
 CollectionUtils.subtract(a, b);    

第二種:直接調用List中的方法

A交B
listA.retainAll(listB);
A並B
listA.addAll(listB);
A減去B
listA.removeAll(listB);

 上述的只是基礎類型的排序String,Integer等,如果涉及到工作上業務實體類的時候需要在實體類中重寫 equals(

    @Override
    public boolean equals(Object obj) {
        
        return true;
    }

    @Override
    public int hashCode() {
        return 0;
    }

根據具體業務寫

 

)方法和hasCode()方法


免責聲明!

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



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