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> ...
随机推荐
- 使用 Python 解数学方程
SymPy是符号数学的Python库.它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁.易于理解和扩展 服务器Ubuntu 1.安装Python 2.安装SymPy库 sudo pip in ...
- 详解BarTender符号体系特殊选项之“行数”
上面两篇文章小编和大家分享了BarTender符号体系特殊选项中的“行高”和“列”.此外,某些二维 (2D) 符号体系的结构为多个信息行,每一行看上去都像一个非常窄的条形码. 例如,以下图像是含 3 ...
- 一下删除MSSQL表所有的数据,但不删除表结构
--CREATE PROCEDURE sp_DeleteAllData--AS--EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT AL ...
- association 的使用
<resultMap id="wmsTaskMap" type="WmsTask"> <id column="ID" jd ...
- Mac OS 电信3G上网设置
打开客户端后(安装客户端mobile partner需要先安装jdk),在“系统偏好设置”里选择“网络”,网络左侧添加“huaweimobile-modem”,“电话号码”填写电信卡号,“账户名称”和 ...
- [转]mac osx 下的apt-get,yum的代替工具 ----homebrew
原文地址:http://blog.csdn.net/tsxw24/article/details/15500517 linux下有很方便的包管理器如:apt-get.yum,mac下也有类似的工具:H ...
- Python函数相关
Python中的函数也是一种对象,而且函数还是一等公民.函数能作为参数,也能作为返回值,这使得Python中的函数变得很灵活.想想前面两篇中介绍的通过内嵌函数实现的装饰器和闭包. 下面就介绍一下Pyt ...
- Docker-创建和分享应用(3)
Dockerfile定义容器内环境中发生的事情.对网络接口和磁盘驱动器等资源的访问在此环境中进行虚拟化,该环境与系统的其他部分隔离,因此您需要将端口映射到外部世界,并具体说明要“复制”哪些 ...
- C语言的f(open)函数(文件操作/读写)
头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, ...
- 自定义 Core Data 迁移
本文转载至 http://objccn.io/issue-4-7/ 感谢本文作者 朱宏旭 的不啬分享 自定义 Core Data 迁移似乎是一个不太起眼的话题.苹果在这方面只提供了很少的文档,若是初次 ...