在我們開發(fā)中經(jīng)常遇到一種情況---數(shù)組中有重復(fù)的元素,但我們并不希望數(shù)組中的元素重復(fù)出現(xiàn)陋守。那我們就需要刪除數(shù)組中重復(fù)的元素殴玛。
方法一(利用NSDictionary的allValues)
NSArray* numbers =@[@1,@2,@3,@1,@4,@2];
NSMutableDictionary* dic = [[NSMutableDictionaryalloc]init];
for(NSNumber* number in numbers) {
[dic setObject:number forKey:number];
}
NSArray* result = [dicallKeys];
NSLog(@"%@",result);
方法二(利用NSSet的allObjects方法)
這種方法更快毕荐,利用NSSet不會添加重復(fù)元素的特性。不過去重?cái)?shù)組中的元素沒有進(jìn)行排序冕碟。
NSArray* numbers =@[@1,@2,@3,@1,@4,@2];
NSSet* set = [NSSet setWithArray:numbers];
NSLog(@"%@",set.allObjects);
方法三(排序的去重)
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]];
}
}
NSLog(@"%@",categoryArray);