1. 程式人生 > >iOS-給陣列去重的幾個方法

iOS-給陣列去重的幾個方法

導讀:iOS有幾種特殊的集合和方法,可以用於陣列去重。

1.利用NSDictionary的AllKeys(AllValues)方法 可以將NSArray中的元素存入一個字典,然後利用AllKeys或者AllValues取得字典的所有鍵或值,因為NSDictionary不會將Key相同的Object新增自己裡面。

示例程式碼:
    NSArray *arr = @[@111,@222,@111];
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    for (NSNumber *number in
arr) { [dict setObject:number forKey:number]; } NSLog(@"%@",[dict allValues]); 輸出結果為: 2017-06-18 11:03:49.449 test1[4377:c07] ( 111, 222 )

2.利用NSSet的AllObjects方法 這種方法更快,利用NSSet不會新增重複元素的特性。

示例程式碼:
    NSArray *arr = @[@111,@222,@111];
    NSSet *set = [NSSet setWithArray:arr];
NSLog(@"%@",[set allObjects]); 輸出結果為: 2017-06-18 11:06:26.508 test1[4547:c07] ( 111, 222 )

3.利用陣列的containsObject方法


NSArray *arr = @[@111,@222,@111];
NSMutableArray *categoryArray = [[NSMutableArray alloc] init];
for (int i = 0; i < [arr count]; i++){
    if ([categoryArray containsObject:[arr objectAtIndex:i]]
== NO) { [categoryArray addObject:[arr objectAtIndex:i]]; } } NSLog(@"%@",categoryArray); 輸出結果為: 2017-06-18 11:09:35.508 test1[4727:c07] ( 111, 222 )