数组去重

2020-01-03  本文已影响0人  竹屋听雨

1:利用NSDictionary的AllKeys

可以将NSArray中的元素存入一个字典,然后利用AllKeys或者AllValues取得字典的所有键或值,这些键或值都是去重的。
示例代码:

NSArray *arr = @[@"aaa",@"aaa",@"bbb"];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
for (NSNumber *number in arr) {  
      [dict setObject:number forKey:number];
 }
 NSLog(@"%@",[dict allValues]);


2: 利用NSSet的AllObjects方法

这种方法更快,利用NSSet不会添加重复元素的特性。不过去重的数组没有进行排序,如果需要排序,可以使用NSSortDescriptor类。

NSArray *arr = @[@abc,@abc,@111];
NSSet *set = [NSSet setWithArray:arr];
NSLog(@"%@",[set allObjects]);

3: 顺序的数组

NSMutableArray *categoryArray = [[NSMutableArray alloc] init];
    for (unsigned i = 0; i < [nameArray count]; i++){
        if ([categoryArray containsObject:[nameArray objectAtIndex:i]] == NO){
            [categoryArray addObject:[nameArray objectAtIndex:i]];
        }
    }
上一篇下一篇

猜你喜欢

热点阅读