数组去重

2017-12-04  本文已影响0人  海耐射手

在我们日常开发中有时候会有数组去重的需求,例如:返回十几个月份,我们需要去重后看返回数据都有几个月份!这是我们需要数组去重来实现这个功能!之前在开发中都是网上搜来直接用,现在有时间来总结一下:

一、NSSet实现数组去重

NSArray *originalArr = @[@1, @9, @4, @3, @1, @3];

NSSet *set = [NSSet setWithArray:originalArr];

NSArray *resultArr = [set allObjects];

NSLog(@"去重后结果: %@",resultArr );

二、利用NSDictionary的AllKeys(AllValues)方法

NSArray *originalArr = @[@1, @9, @4, @3, @1, @3];

NSMutableDictionary *mutableDic = [NSMutableDictionary dictionary];

for (NSNumber *number in originalArr) {

[mutableDic setObject:number forKey:number];

}

NSArray *resultArr = [mutableDic allKeys];

NSLog(@"去重后结果: %@",resultArr);

三、判断是否存在,若不存在则添加到数组中,得到最终结果的顺序不发生变化

NSArray *originalArr = @[@1, @9, @4, @3, @1, @3];

NSMutableArray *resultArr = [NSMutableArray array];

for (NSString *string in originalArr) {

            if (![resultArr containsObject:string]) {

                        [resultArr addObject:string];

            }

}

NSLog(@"去重后结果: %@",resultArr);

四、通过valueForKeyPath去重(原理不懂)

NSArray *originalArr = @[@1, @9, @4, @3, @1, @3];

NSArray *result = [originalArr valueForKeyPath:@"@distinctUnionOfObjects.self"];

上一篇下一篇

猜你喜欢

热点阅读