文档章节

ios 删除数组相同元素

Youth_关旋
 Youth_关旋
发布于 2016/10/11 14:02
字数 753
阅读 59
收藏 0

参考地址:http://blog.csdn.net/wm9028/article/details/49926535

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

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

代码:

  

[objc] view plain copy

 

  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方法

实例代码:

 

[objc] view plain copy

 

  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来去除

代码如下:

 

[objc] view plain copy

 

  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的方式(自己不是太明白)

 

[objc] view plain copy

 

  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);  


打印结果如下:

 

 

[objc] view plain copy

 

  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循环的方式去除方法不再叙述;淡然也参考了别人的东西进行的总结

案例的使用:

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

© 著作权归作者所有

Youth_关旋
粉丝 2
博文 70
码字总数 23376
作品 0
枣庄
私信 提问
修复ios不支持fixed属性

场景说明:产品需求在wap页面,需要在页面底部固定一块区域执行输入操作。在Android手机中,对position:fixed是完美支持并实现预计效果的,但ios系统手机测试时出现输入框光标不居中和底部区...

碌星
2018/05/19
0
0
细数iOS上的那些安全防护

细数iOS上的那些安全防护 龙磊,黑雪,蒸米 @阿里巴巴移动安全 0x00 序 随着苹果对iOS系统多年的研发,iOS上的安全防护机制也是越来越多,越来越复杂。这对于刚接触iOS安全的研究人员来说非常...

阿里聚安全
2016/08/24
321
1
iOS 7 正式版发布:全新设计、全新功能

经过漫长的等待,全新设计的iOS 7终于发布了!用户可以通过iTunes或OTA升级至全新的iOS 7.0。iOS 7拥有全新设计的界面和功能。也是自iPhone发布后,苹果移动操作系统变化最大的一次改变。 iO...

oschina
2013/09/19
6.3K
24
Framework7 v1.6.5 和 v2.0.0-beta.3,HTML 移动端框架

Framework7 v1.6.5 和 v2.0.0-beta.3 已发布,Framework7 是免费开源的 HTML 移动端框架,用来开发混合移动端应用或者 iOS 7 的 Web 应用,并且带有 iOS 7 的原生外观和感觉。Framework7 也是...

局长
2017/09/08
624
0
iOS 12 JS数组Bug,可能带来互联网风波,附解决方案

喜气洋洋,被安利使用iOS12,红红火火,更新最新版本。 网络上已经有人遇到 iOS 数组相关的一个Bug,似乎会酿成整个互联网风波。 Array state will be cached in iOS 12 Safari, is bug or f...

明非
2018/09/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
1K
12
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
33
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
33
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
46
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部