microleo的个人博客

iOS项目中去除数组中重复数据的解决方法

在iOS项目中我们经常会遇到,在数组中有重复数据的时候,如何去除重复的数据呢?
一下是我总结的几种方案

NSMutableArray *arrays = [NSMutableArray arrayWithObjects:@"1",@"2" ,@"2" ,@"3" ,@"3" ,@"4" ,@"4" ,@"5",@"5" ,@"6" ,@"6",nil];
1.利用NSDictionary的AllKeys(AllValues)方法
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
for (NSString *obj in arrays) {
if (obj&& ![dic objectForKey:obj]) {
[dic setObject:obj forKey:obj];
}
}
NSLog(@"------%@",dic);
2.利用NSSet的Allobjects方法
NSMutableSet *set = [NSMutableSet setWithArray:arrays];
NSLog(@"------%@",set);
3. 利用数组的containsObject来去除
NSMutableArray *carr = [NSMutableArray array];
for (NSString *str in arrays) {
if (![carr containsObject:str]) {
[carr addObject:str];
}
}
NSLog(@"------%@",carr);
4.利用 数组的KeyValue方式
NSMutableArray *carrUnion = [NSMutableArray array];
arrays = [arrays valueForKeyPath:@"@distinctUnionOfObjects.self"];
NSLog(@"----------%@",arrays);