iOS - 去除数组中重复数据的几种方法
第一种:利用NSDictionary的AllKeys(AllValues)方法
代码:
NSArray *dataArray = @[@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-03",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-04",@"2018-02-06",@"2018-02-08",
@"2018-02-05",@"2018-02-07",@"2018-02-09"];
NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithCapacity:];
for(NSString *str in dataArray)
{
[dic setValue:str forKey:str];
}
NSLog(@"%@",[dic allKeys]);
打印结果:
(
"2018-02-09",
"2018-02-02",
"2018-02-08",
"2018-02-01",
"2018-02-07",
"2018-02-06",
"2018-02-05",
"2018-02-04",
"2018-02-03"
)
第二种方法:利用NSSet的AllObjects方法
代码:
NSArray *dataArray = @[@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-03",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-04",@"2018-02-06",@"2018-02-08",
@"2018-02-05",@"2018-02-07",@"2018-02-09"];
NSSet *set = [NSSet setWithArray:dataArray];
NSLog(@"%@",[set allObjects]);
打印结果:
(
"2018-02-01",
"2018-02-02",
"2018-02-03",
"2018-02-04",
"2018-02-06",
"2018-02-08",
"2018-02-05",
"2018-02-07",
"2018-02-09"
)
第三种方法,利用数组的containsObject来去除
代码:
NSArray *dataArray = @[@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-03",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-04",@"2018-02-06",@"2018-02-08",
@"2018-02-05",@"2018-02-07",@"2018-02-09"];
NSMutableArray *listAry = [[NSMutableArray alloc]init];
for (NSString *str in dataArray) {
if (![listAry containsObject:str]) {
[listAry addObject:str];
}
}
NSLog(@"%@",listAry);
打印结果:
(
"2018-02-01",
"2018-02-02",
"2018-02-03",
"2018-02-04",
"2018-02-06",
"2018-02-08",
"2018-02-05",
"2018-02-07",
"2018-02-09"
)
第四种方法:利用keyValue的方式
代码:
NSArray *dataArray = @[@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-03",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-01",@"2018-02-02",@"2018-02-03",
@"2018-02-04",@"2018-02-06",@"2018-02-08",
@"2018-02-05",@"2018-02-07",@"2018-02-09"];
dataArray = [dataArray valueForKeyPath:@"@distinctUnionOfObjects.self"];
NSLog(@"%@",dataArray);
打印结果如下:
(
"2018-02-01",
"2018-02-02",
"2018-02-03",
"2018-02-04",
"2018-02-06",
"2018-02-08",
"2018-02-05",
"2018-02-07",
"2018-02-09"
)
总结:这几种方式都可以实现去除重复的数据,当然也可以用for循环的方式去除方法不再叙述;参考了别人的东西进行的总结
案例的使用:
服务器返回一个带有日期的数组,当然有重复的日期,同一个的日期的列表要在同一个地方的话,头部显示日期的话,可以使用到此方法去除重复的,当然,根据具体的情况代码和逻辑是不同的!
iOS - 去除数组中重复数据的几种方法的更多相关文章
- 关于iOS去除数组中重复数据的几种方法
关于iOS去除数组中重复数据的几种方法 在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方 ...
- php获取数组中重复数据的两种方法
分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...
- JS去除数组中重复值的四种方法
JS去除数组中重复值的四种方法 1 /// <summary> o[this[i]] = ""; } } newArr.p ...
- Js中去除数组中重复元素的6种方法
方法一: Array.prototype.method1 = function(){ var arr=[]; //定义一个临时数组 for(var i = 0; i < this.length; ...
- php去除数组中重复数据
<?php /** * 去除数组中重复数据 * by www.jbxue.com **/ $input = array("a" => "green" ...
- iOS去除数组中重复的model数据
// 去除数组中model重复 ; i < self.selectedModelArray.count; i++) { ;j < self.selectedModelArray.count ...
- PHP去除数组中重复数据的两个例子
例一: <?php$input = array("a" => "green","", "red"," ...
- php 去除数组中重复元素
去除数组中重复元素, 找了下可以一下两个函数 php array_flip()与array_uniqure() $arr = array(…………) ;// 假设有数组包含一万个元素,里面有重复的元素 ...
- JavaScript去除数组中重复的数字
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- BIOS、EFI与UEFI详解
https://blog.csdn.net/Scythe666/article/details/79708293
- MTK 隐藏上方的状态栏
步骤一: 源码/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.ja ...
- 排列2(全排列next_permutation 注意格式)
排列2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- AngularJS------使用VSCode创建的Angular项目部署IIS
转载: http://www.cnblogs.com/kingkangstudy/p/7699710.html 1.进入项目src,执行命令行:ng build 2.步骤1后会生成dist文件 3.打 ...
- JVM虚拟机内存模型以及GC机制
JAVA堆的描述如下: 内存由 Perm 和 Heap 组成. 其中 Heap = {Old + NEW = { Eden , from, to } } JVM内存模型中分两大块,一块是 NEW Ge ...
- ios开发之--使用UILabel Category 计算UILabel内容大小
在此仅做记录,代码如下:
- PyCharm 基础设置
设置主题:File -- Settings -- Editor -- Color & Fonts -- Font -- Scheme 设置为 Darcula 设置字体:File -- Sett ...
- U3D 游戏引擎之游戏架构脚本该如何来写
这篇文章MOMO主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难.这篇文章的目的是让哪些已经上手Unity3D游戏引 ...
- RN(八)——react-native-image-viewer & react-native-swiper
以项目(业务GO)为例: react-native-swiper 轮播(用在首页的图集轮播) https://github.com/leecade/react-native-swiper react- ...
- XPath的初步认识
嘿嘿,最近开始上班,不是过于太忙,而是自己一直在学习一些项目中用到的而我暂时还没接触的知识,WCF,log4等,感觉还没有总结的需要吧,虽然都了解啦,但是暂时还是初步的学习,基础的暂时是知道啦,还没有 ...