美文网首页iOS-Developer-OC收藏ios
iOS数组去重的几种方式

iOS数组去重的几种方式

作者: Smallwolf_JS | 来源:发表于2018-08-13 19:37 被阅读4次
    第一种:利用NSDictionary的AllKeys(AllValues)方法

    代码:

    NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-03",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-04",@"2014-04-06",@"2014-04-08",
                               @"2014-04-05",@"2014-04-07",@"2014-04-09",];
        NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithCapacity:0];
        for(NSString *str in dataArray)
        {
            [dic setValue:str forKey:str];
        }
        NSLog(@"%@",[dic allKeys]);
    
    第二种方法:利用NSSet的AllObjects方法

    实例代码:

     NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-03",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-04",@"2014-04-06",@"2014-04-08",
                               @"2014-04-05",@"2014-04-07",@"2014-04-09",];
        NSSet *set = [NSSet setWithArray:dataArray];
        NSLog(@"%@",[set allObjects]);
    
    第三种方法,利用数组的containsObject来去除

    代码如下:

    NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-03",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-04",@"2014-04-06",@"2014-04-08",
                               @"2014-04-05",@"2014-04-07",@"2014-04-09",];
        NSMutableArray *listAry = [[NSMutableArray alloc]init];
        for (NSString *str in dataArray) {
            if (![listAry containsObject:str]) {
                [listAry addObject:str];
            }
        }
        NSLog(@"%@",listAry);
    
    第四种方法:利用keyValue的方式
    NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-03",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-01",@"2014-04-02",@"2014-04-03",
                               @"2014-04-04",@"2014-04-06",@"2014-04-08",
                               @"2014-04-05",@"2014-04-07",@"2014-04-09",];
        dataArray = [dataArray valueForKeyPath:@"@distinctUnionOfObjects.self"];
        NSLog(@"%@",dataArray);
    

    相关文章

      网友评论

        本文标题:iOS数组去重的几种方式

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