两个 NSArray去重过滤 避免大量使用for循环

// 取两个数组交集的时候,可以先将NSArray 转换成 NSMutableSet,再通过取二者交集即可,但是需要注意一点是数组中的元素最好复写一下isEqual和hash方法。保证取交集后的结果是正确的NSArray *arr = @[@"12-11", @"12-11", @"12-11", @"12-12", @"12-13", @"12-14"];NSSet *set = [NSSet setWithArray:arr];// 要将数组内元素排序或者过滤可以结合NSSortDescriptor 和NSPredicate使用,这样避免使用大量for循环之类的代码NSArray *sortDesc = @[[[NSSortDescriptor alloc] initWithKey:nil ascending:YES]];NSArray *sortSetArray = [set sortedArrayUsingDescriptors:sortDesc];NSLog(@"set%@\nsort set%@", set, sortSetArray);NSArray *array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];NSArray *array2 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6", nil];NSMutableSet *set1 = [NSMutableSet setWithArray:array1];NSMutableSet *set2 = [NSMutableSet setWithArray:array2];// 取出差集array1.count >= array2.count ? [set1 minusSet:set2] : [set2 minusSet:set1];NSMutableArray *array =  [NSMutableArray arrayWithArray:array1.count >= array2.count ? set1.allObjects : set2.allObjects];NSLog(@"差集-%@", array);// 取并集[set1 unionSet:set2];NSLog(@"并集:%@",set1.allObjects); // 并集的结果为:// 取交集[set1 intersectSet:set2];NSLog(@"交集:%@",set1.allObjects); // 交集的结果为

NSArray去重过滤相关推荐

  1. iOS NSArray数组过滤

    需求:在一个数组里面,将在这个数组中的并且在另一个数组里面的元素过滤掉. 即:在一个数组dataArray里面,将在dataArray数组中的并且在filteredArray数组里面的元素过滤掉. / ...

  2. oracle中通过distinct为什么过滤不了重复的数据_spark | 手把手教你用spark进行数据预处理...

    今天是spark专题的第七篇文章,我们一起看看spark的数据分析和处理. 过滤去重 在机器学习和数据分析当中,对于数据的了解和熟悉都是最基础的.所谓巧妇难为无米之炊,如果说把用数据构建一个模型或者是 ...

  3. 腾讯云 AI 视觉产品基于流计算 Oceanus(Flink)的计费数据去重尝试

    | 导语: 介绍下最近使用 Flink 来对计费数据进行去重的具体做法 一. 背景 AI 视觉产品在我们腾讯云-人工智能的产品目录下,包括人脸识别.人脸特效.人脸核身.图像识别.文字识别等. 流计算 ...

  4. redis应用场景—— 缓存,分布式锁,去重

    Redis实际应用场景 https://www.cnblogs.com/mrhgw/p/6278619.html Redis在很多方面与其他数据库解决方案不同: 它使用内存提供主存储支持,而仅使用硬盘 ...

  5. 推荐系统-经典协同过滤理论基础实践

    推荐系统-经典协同过滤理论基础实践 1.协同过滤推荐方法CF简介 协同过滤CF 基于记忆的协同过滤 用户相似度的推荐 物品相似度推荐 UserCF用户协同过滤算法 ItemCF物品的协同过滤推荐算法 ...

  6. 推荐系统-经典协同过滤算法【基于记忆的协同过滤算法、基于模型的协同过滤算法】

    推荐系统-经典协同过滤理论基础实践 1.协同过滤推荐方法CF简介 协同过滤CF 基于记忆的协同过滤 ---- 用户和物品的相似度矩阵 用户相似度的推荐 物品相似度推荐 UserCF用户协同过滤算法 I ...

  7. vivo 短视频推荐去重服务的设计实践

    一.概述 1.1 业务背景 vivo短视频在视频推荐时需要对用户已经看过的视频进行过滤去重,避免给用户重复推荐同一个视频影响体验.在一次推荐请求处理流程中,会基于用户兴趣进行视频召回,大约召回2000 ...

  8. 全民K歌推荐后台架构

    分享嘉宾:davidwwang 腾讯音乐 | 基础开发组副组长 编辑整理:梁尔舒 出品平台:DataFunTalk 导读:首先介绍一下我们业务背景,腾讯音乐集团,于2018年是从腾讯拆分独立上市,目前 ...

  9. NSPredicate

    一.简介 NSPredicate指定数据被获取或者过滤的方式,是一个Foundation类. Cocoa框架中的NSPredicate用于指定过滤器的条件(即查询),它的原理和用法都像SQL的WHER ...

最新文章

  1. mongDB的常用操作总结
  2. raid卡组不同raid_乐扩IO-PCE9230-4IR阵列卡组阵列教程
  3. firefox不激活新标签页
  4. UML模型中的图-实现图【组件图、配置图】
  5. Android 去掉TabLayout下的阴影,AppBarLayout下的阴影
  6. php如何打出的正方形行列,javascript实现输出指定行数正方形图案的方法
  7. 关于端到端通信的讨论(P2P)
  8. 计算机问题求解需要研究的要素,关于计算机音乐制作的空间构成要素的研究
  9. japidocs怎么设置参数必填_常用的3种拍摄模式,相机参数怎么设置?如何正确曝光?...
  10. shiro自定义session过期时间
  11. matlab插值法计算根号,怎么用matlab利用拉格朗日插值计算法的原理编写并计算函数所在节点的近似值....
  12. VMware虚拟机安装与使用
  13. php网站视频播放外链,视频直接上传到七牛上,在浏览器中输入外链为什么不能直接播放?...
  14. 软考网络工程师协议和名称---必看
  15. 2021-2027全球与中国单向拉伸聚丙烯薄膜市场现状及未来发展趋势
  16. 块元素盒子内容被撑开
  17. 宽带连接连接被远程计算机终止 619,连接宽带时出错代号的含义
  18. 互联网经济的背后-梅特卡夫效应与双边市场效应
  19. .NET内存性能分析宝典
  20. IDEA 要自己主动装的插件(等我安新的了再更新)

热门文章

  1. arcgis更改图层坐标系_【干货】ArcGIS之shp文件坐标系互转
  2. C++17 filesystem 文件系统(详解)
  3. C++17 filesystem
  4. LeetCode1143动态规划详解!
  5. docker-compose编排ELK,kibana报错Unable to revive connection: http://172.16.23.126:9200/
  6. 【webrtc 】P2P的JsepTransport 的创建与 管理
  7. 那一年我学习软件测试,现在没有后悔
  8. 将i am biter 逆置为:biter am i 函数原型:
  9. telegram 下载群组聊天消息
  10. 华为发布AI Fabric白皮书,助力构建智能无损的数据中心网络