美文网首页
数组去重

数组去重

作者: 海耐射手 | 来源:发表于2017-12-04 16:40 被阅读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"];

    相关文章

      网友评论

          本文标题:数组去重

          本文链接:https://www.haomeiwen.com/subject/zfuxixtx.html