我有一个nsmutablearray
如下所示。我想检索没有冗余的列表值。在这个例子中,我应该检索10 20 30
NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"10",@"20",@"30",@"30",@"30",@"30",@"20", nil];
我有一个nsmutablearray
如下所示。我想检索没有冗余的列表值。在这个例子中,我应该检索10 20 30
NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"10",@"20",@"30",@"30",@"30",@"30",@"20", nil];
将数组转换为集合,然后再转换回数组。
NSSet *set = [NSSet setWithArray:array];
NSArray *a = [set allObjects];
您还可以对这个新数组进行排序:
NSArray *a2 = [a sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2];
}];
从 iOS 5 开始,您可以使用-[NSOrderedSet orderedSetWithArray:]
which 保留顺序:
NSArray *a2 = [[NSOrderedSet orderedSetWithArray:array] array];
尝试使用这个
NSArray *array = @[@"10",@"20",@"30",@"30",@"30",@"30",@"20"];
NSArray *newArray = [[NSSet setWithArray:array] allObjects];
NSLog(@"%@", newArray);
输出:(30、20、10)
NSArray *withRedunecy = [[NSSet setWithArray: array] allObjects];
这将是一种方法,例如您可以创建NSArray
没有重复对象的新对象,或者您需要创建一个逻辑来获取唯一对象,例如一一插入并检查它是否已经存在。
只有这行代码才能正常工作。
NSSet *mySet = [NSSet setWithArray:array];
现在 mySet 将有唯一的元素。所以用这个集合创建数组
NSArray *myarray = [mySet allObjects];