美文网首页
IOS 数组去重方法

IOS 数组去重方法

作者: 奋斗吧_程序猿 | 来源:发表于2018-06-12 16:26 被阅读33次

    1.使用字典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
    )

    2使用集合NSSet的初始化方法,简单暴力。

    • 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
    )

    • 想要得出结果是有序的
    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
    )

    3.类似冒泡法的实现原理,逻辑简单,顺序不会变化

     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
    )

    4.使用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 数组去重方法

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