iOS去除数组中重复元素的几种方法

来源:互联网 发布:安卓慢镜头拍摄软件 编辑:程序博客网 时间:2024/05/16 12:31
//第一种:利用NSDictionary的allKeys(allValues)方法。    NSArray *array = @[@"2016-10-1",@"2016-10-9",                  @"2016-10-9",@"2016-10-9",@"2016-12-25",                  @"2016-12-25",@"2016-12-25",                       @"2016-12-25",@"2016-12-25"];        NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithCapacity:0];    for (NSString *str in array) {                [dic setValue:str forKey:str];    }    NSLog(@"%@",[dic allKeys]);<pre name="code" class="html">//打印结果 (    "2016-12-25",    "2016-10-1",    "2016-10-9")<pre name="code" class="html">
//第二种方法:利用NSSet的allObjects方法    NSSet *set = [NSSet setWithArray:array];    NSLog(@"%@",[set allObjects]);

<pre name="code" class="html">//第三种:利用数组的containsObject    NSMutableArray *ary = [[NSMutableArray alloc]init];    for (NSString *str  in array) {        if (![ary containsObject:str]) {            [ary addObject:str];        }    }    NSLog(@"%@",ary);


  //第四种:利用keyValue

    array = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];

    NSLog(@"----%@",array);

//第五种,输出结果顺序不会乱
    NSMutableArray *categoryArray = [[NSMutableArray alloc] init];    for (unsigned i = 0; i < [array count]; i++){        if ([categoryArray containsObject:[array objectAtIndex:i]] == NO){            [categoryArray addObject:[array objectAtIndex:i]];        }            }        NSLog(@"======%@",categoryArray);


0 0
原创粉丝点击