在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢?

第一种:利用NSDictionary的AllKeys(AllValues)方法

代码:

  1. NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
  2. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  3. @"2014-04-01",@"2014-04-03",@"2014-04-03",
  4. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  5. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  6. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  7. @"2014-04-04",@"2014-04-06",@"2014-04-08",
  8. @"2014-04-05",@"2014-04-07",@"2014-04-09",];
  9. NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithCapacity:0];
  10. for(NSString *str in dataArray)
  11. {
  12. [dic setValue:str forKey:str];
  13. }
  14. NSLog(@"%@",[dic allKeys]);

打印结果:

(
    "2014-04-09",
    "2014-04-02",
    "2014-04-08",
    "2014-04-01",
    "2014-04-07",
    "2014-04-06",
    "2014-04-05",
    "2014-04-04",
    "2014-04-03"
)

第二种方法:利用NSSet的AllObjects方法

实例代码:

  1. NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
  2. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  3. @"2014-04-01",@"2014-04-03",@"2014-04-03",
  4. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  5. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  6. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  7. @"2014-04-04",@"2014-04-06",@"2014-04-08",
  8. @"2014-04-05",@"2014-04-07",@"2014-04-09",];
  9. NSSet *set = [NSSet setWithArray:dataArray];
  10. NSLog(@"%@",[set allObjects]);

打印结果:

(
    "2014-04-01",
    "2014-04-02",
    "2014-04-03",
    "2014-04-04",
    "2014-04-06",
    "2014-04-08",
    "2014-04-05",
    "2014-04-07",
    "2014-04-09"
)

第三种方法,利用数组的containsObject来去除

代码如下:

  1. NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
  2. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  3. @"2014-04-01",@"2014-04-03",@"2014-04-03",
  4. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  5. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  6. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  7. @"2014-04-04",@"2014-04-06",@"2014-04-08",
  8. @"2014-04-05",@"2014-04-07",@"2014-04-09",];
  9. NSMutableArray *listAry = [[NSMutableArray alloc]init];
  10. for (NSString *str in dataArray) {
  11. if (![listAry containsObject:str]) {
  12. [listAry addObject:str];
  13. }
  14. }
  15. NSLog(@"%@",listAry);

打印结果:

(
    "2014-04-01",
    "2014-04-02",
    "2014-04-03",
    "2014-04-04",
    "2014-04-06",
    "2014-04-08",
    "2014-04-05",
    "2014-04-07",
    "2014-04-09"
)

第四种方法:利用keyValue的方式(自己不是太明白)

  1. NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
  2. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  3. @"2014-04-01",@"2014-04-03",@"2014-04-03",
  4. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  5. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  6. @"2014-04-01",@"2014-04-02",@"2014-04-03",
  7. @"2014-04-04",@"2014-04-06",@"2014-04-08",
  8. @"2014-04-05",@"2014-04-07",@"2014-04-09",];
  9. dataArray = [dataArray valueForKeyPath:@"@distinctUnionOfObjects.self"];
  10. NSLog(@"%@",dataArray);

打印结果如下:

  1. (
  2. "2014-04-01",
  3. "2014-04-02",
  4. "2014-04-03",
  5. "2014-04-04",
  6. "2014-04-06",
  7. "2014-04-08",
  8. "2014-04-05",
  9. "2014-04-07",
  10. "2014-04-09"
  11. )

总结:这几种方式都可以实现去除重复的数据,当然也可以用for循环的方式去除方法不再叙述;淡然也参考了别人的东西进行的总结

案例的使用:

服务器返回一个带有日期的数组,当然有重复的日期,同一个的日期的列表要在同一个地方的话,头部显示日期的话,可以使用到此方法去除重复的,当然,根据具体的情况代码和逻辑是不同的!

转载于:https://www.cnblogs.com/wzy1/p/7884939.html

关于iOS去除数组中重复数据的几种方法相关推荐

  1. Js中去除数组中重复元素的几种方法

    方法1: 1 Array.prototype.method1=function(){ 2 var arr=[]; 3 for(var i=0;i<this.length;i++){ 4 if(a ...

  2. php数组遍历相同的元素覆盖_php获取数组中重复数据的两种方法

    搜索热词 代码如下: PHP function FetchRepeatMemberInArray($array) { // 获取去掉重复数据的数组 $unique_arr = array_unique ...

  3. python去重复排序_Python实现删除排序数组中重复项的两种方法示例

    本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...

  4. java删除数组中重复元素的几种方法

    Java操控数组,删除数组中所有的重复元素,使其数组元素全部唯一,有以下几种方法: 1,使用set(最好想到),set本身就是不重复的集合: package Array_test;import jav ...

  5. Python 中list中所有值加和_Python 中去除列表中重复元素的5种方法

    (点击上方快速关注并设置为星标,一起学Python) 1.使用集合 Python中集合的元素是唯一的,具有去重的功能.使用集合与列表可以互转的特性,将列表转换为集合去重,再将集合转换为列表: def ...

  6. python如何去除列表中的重复项_Python 中去除列表中重复元素的5种方法

    (点击上方快速关注并设置为星标,一起学Python) 1.使用集合 Python中集合的元素是唯一的,具有去重的功能.使用集合与列表可以互转的特性,将列表转换为集合去重,再将集合转换为列表: def ...

  7. android 去重 比较两个list_android 去重 比较两个list_Android 去除list集合中重复项的几种方法...

    因为用到list,要去除重复数据,尝试了几种方法.记录于此... 测试数据: List li1 = new List { "", "", "" ...

  8. android 去重 比较两个list_Android 去除list集合中重复项的几种方法

    因为用到list,要去除重复数据,尝试了几种方法.记录于此... 测试数据: List li1 = new List { "", "", "" ...

  9. php 从数组里删除元素,PHP从数组中删除元素的四种方法实例

    PHP从数组中删除元素的四种方法实例 一.总结 一句话总结:unset(),array_splice(),array_diff(),array_diff_key() 二.PHP从数组中删除元素的四种方 ...

最新文章

  1. 计算机知识课后反思,计算机硬件和软件知识课后反思
  2. YoutubeNet的数据答疑
  3. java short字段_Java Field setShort()用法及代码示例
  4. angular5 ng-content使用方法
  5. 混淆工具Dotfuscator基本使用
  6. 告别DNS劫持,一文读懂DoH
  7. 跟幼师谈恋爱什么梗_和懂你的人谈恋爱,比“秋天的第一杯奶茶”要甜
  8. pytorch load state dict_学习Pytorch过程遇到的坑(持续更新中)
  9. 8.霍夫变换:线条——动手编码、霍夫演示_4
  10. 解决Oracle的http://localhost:1158/em页面打不开的问题
  11. find函数常见错误_如何利用FIND找出你要的数据-EXCEL-开篇3-字符串函数系列-2
  12. tensorflow tensorboard summary的工作特点
  13. 转:awakeFromNib/loadView/viewDidLoad总结
  14. 62.不同的路径(力扣leetcode) 博主可答疑该问题
  15. Windows 10 全新界面来了:焕然一新!
  16. 基于74系列芯片的红绿灯设计
  17. 模拟城市5一直显示服务器中断,EA关闭《模拟城市5》非关键功能缓解服务器问题...
  18. 配置ip地址常用命令及解释
  19. JavaScript小项目总结
  20. 博升机器人_乐博乐博机器人

热门文章

  1. MVC使用 Elmah 日志记录组件
  2. SQL中 decode()函数简介
  3. 查找Windows文件来历的好方法
  4. 2018.08.27 lucky(模拟)
  5. python_104_面向对象总结
  6. Java未赋值变量的默认初始值
  7. oracle中导入dmp数据注意事项
  8. 关于移动端架构的好的学习网站
  9. Python学习笔记——常量和变量
  10. 装箱与拆箱及其性能损失问题