数组去掉重复



//去掉数组中重复内容(有序 containsObject)

NSMutableArray *arr = [NSMutableArrayarray]; NSArray*arr1 = @[@"12-11",@"12-11",@"12-11",@"12-10",@"12-12",@"12-13"]; for (int i = 0 ; i < arr1.count; i++) { //判断是否含有 if ([arr containsObject:[arr1 objectAtIndex:i]] == NO){ [arr addObject:[arr1 objectAtIndex:i]]; } } NSLog(@"ccc%@",arr);



//利用集合去掉重复性(无序)
NSArray*arr1 = @[@"12-11",@"12-11",@"12-11",@"12-10",@"12-12",@"12-13"]; NSSet *set = [NSSetsetWithArray:arr1]; NSLog(@" %@ ",set);



//有序集合去重复(NSOrderedSet)
NSArray*arr1 = @[@"12-11",@"12-11",@"12-11",@"12-10",@"12-12",@"12-13"]; NSOrderedSet *set = [NSOrderedSet orderedSetWithArray:arr1]; NSLog(@"%@", set);



NSOrderedSet
NSOrderedSet在iOS 5中被引入,看上去它综合了NSArray和NSSet两者的好处,对象查找,对象唯一性,和快速随机访问。
NSOrderedSet有着优秀的API方法,使得它可以很便利的与其他set或者有序set对象合作。合并,交集,差集,就像NSSet支持的那样。它有NSArray中的大多数排序方法,除了比较陈旧的基于函数的排序方法和二分查找。毕竟containsObject:非常快,所以没有必要再用二分查找了。
【数组去掉重复】NSOrderedSet比NSSet和NSArray占用更多的内存,因为它需要一起维护哈希值和索引

    推荐阅读