iOS-給陣列去重的幾個方法
阿新 • • 發佈:2018-11-13
導讀: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
)