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