iOS开发数组去重方法,排序去重和包含元素
2017-03-28 09:08
375 查看
iOS开发数组去重、包含元素
工作中难免会遇到需要去除数组中的重复数据,笔者总结到几个方法,分享出来供大家参考一、使用字典Key的唯一性方法中如果key值相同,则不会再往字典中添加数据。
代码实现:NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)]; // 声明一个可变字典,用key的唯一性 NSMutableDictionary *dic = [[NSMutableDictionaryalloc]initWithCapacity:0]; for(NSString *strin checkArray) { [dic setValue:strforKey:str]; } NSLog(@"%@",[dicallKeys]);
打印结果:
2017-03-27 20:54:28.049 数组去重[3809:230991] (
111,
222,
555
)
二、使用集合NSSet的初始化方法,简单暴力。
NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)]; // 直接调用集合是类初始化方法。 NSSet *set = [NSSetsetWithArray:checkArray]; NSLog(@"%@",[setallObjects]);
打印结果
2017-03-27 21:03:54.071 数组去重[3874:236584] (
111,
555,
222
)
如上打印,NSSet得出结果是无续的,如果想要有序的可以
NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)];
NSOrderedSet *set = [NSOrderedSetorderedSetWithArray:checkArray];
NSLog(@”%@”, set.array);
打印结果:
2017-03-27 21:12:58.619 数组去重[3936:242301] (
111,
222,
555
)
三、类似冒泡法的实现原理,逻辑简单,顺序不会变化
NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)]; NSMutableArray *containArray = [[NSMutableArrayalloc] init]; for (unsigned i =0; i < [checkArray count]; i++){ if ([containArraycontainsObject:[checkArrayobjectAtIndex:i]] == NO){ [containArray addObject:[checkArrayobjectAtIndex:i]]; } } NSLog(@"%@",containArray);
打印结果
2017-03-27 21:06:57.416 数组去重[3897:238906] (
111,
222,
555
)
四、使用valueForKeyPath:
NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)]; checkArray = [checkArray valueForKeyPath:@"@distinctUnionOfObjects.self"]; NSLog(@"%@",checkArray);
打印结果:
2017-03-27 21:16:18.912 数组去重[3967:244528] (
111,
555,
222
)
相关文章推荐
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发数组去重方法,排序去重和包含元素
- iOS开发之把数组中的元素进行随机排序、随机数产生的几种方法
- iOS 判断数组array中是否包含元素a,取出a在array中的下标+数组方法详解
- iOS开发——根据数组中的字典中的某一元素排序
- iOS开发 NSArray数组的排序(系统自带的方法)
- iOS是开发之 对数组中的元素排序后输出
- iOS开发 -- 数组去重+排序的方法