数组去掉重复


//去掉数组中重复内容(有序 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占用更多的内存,因为它需要一起维护哈希值和索引

你可能感兴趣的:(数组去掉重复)