从NSmutablearray获取不同的值

时间:2013-05-23 12:58:51

标签: ios nsmutablearray

我有一个nsmutablearray,如下所示。我想检索没有冗余的列表值。在这个例子中,我应该检索10 20 30

NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"10",@"20",@"30",@"30",@"30",@"30",@"20", nil];

4 个答案:

答案 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];