我有一个nsmutablearray
,如下所示。我想检索没有冗余的列表值。在这个例子中,我应该检索10 20 30
NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"10",@"20",@"30",@"30",@"30",@"30",@"20", nil];
答案 0 :(得分:2)
将数组转换为集合,然后再转换为数组。
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:]
:
NSArray *a2 = [[NSOrderedSet orderedSetWithArray:array] array];
答案 1 :(得分:1)
NSArray *withRedunecy = [[NSSet setWithArray: array] allObjects];
这将是你可以创建没有重复对象的新NSArray
的一种方法,或者你需要创建一个逻辑来获取像插入一样的唯一对象,并检查它是否已经存在。< / p>
答案 2 :(得分:1)
尝试在
上使用它NSArray *array = @[@"10",@"20",@"30",@"30",@"30",@"30",@"20"];
NSArray *newArray = [[NSSet setWithArray:array] allObjects];
NSLog(@"%@", newArray);
输出: ( 30, 20, 10 )强>
答案 3 :(得分:0)
只有这行代码才能正常工作。
NSSet *mySet = [NSSet setWithArray:array];
现在mySet将具有唯一的元素。因此使用此set
创建数组NSArray *myarray = [mySet allObjects];