list的交集,差集,并集
工作中用到了list的取差集,发现还是挺好用的。
所以记录下。
需求 | list的方法 | 说明 | 备注 |
---|---|---|---|
交集 | listA.retainAll(listB) | listA内容变为listA和listB都存在的对象 | listB不变 |
差集 | listA.removeAll(listB) | listA中存在的listB的内容去重 | listB不变 |
并集 | listA.removeAll(listB) listA.addAll(listB) |
为了去重,listA先取差集,然后追加全部的listB | listB不变 |
测试代码:
// 交集 List<String> listA_01 = new ArrayList<String>(){{ add("A"); add("B"); }}; List<String> listB_01 = new ArrayList<String>(){{ add("B"); add("C"); }}; listA_01.retainAll(listB_01); System.out.println(listA_01); // 结果:[B] System.out.println(listB_01); // 结果:[B, C] // 差集 List<String> listA_02 = new ArrayList<String>(){{ add("A"); add("B"); }}; List<String> listB_02 = new ArrayList<String>(){{ add("B"); add("C"); }}; listA_02.removeAll(listB_02); System.out.println(listA_02); // 结果:[A] System.out.println(listB_02); // 结果:[B, C] // 并集 List<String> listA_03 = new ArrayList<String>(){{ add("A"); add("B"); }}; List<String> listB_03 = new ArrayList<String>(){{ add("B"); add("C"); }}; listA_03.removeAll(listB_03); listA_03.addAll(listB_03); System.out.println(listA_03); // 结果:[A, B, C] System.out.println(listB_03); // 结果:[B, C]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix