在Objective-C中从NSMutableArray
中删除重复值(NSString
)的最佳方法是什么?
这是最简单、最正确的方法吗?
uniquearray = [[NSSet setWithArray:yourarray] allObjects];
发布于 2013-06-19 17:24:38
如果您的目标是iOS 5+ (涵盖整个iOS世界),最好使用NSOrderedSet
。它删除了重复项并保留了NSArray
的顺序。
只管去做
NSOrderedSet *orderedSet = [NSOrderedSet orderedSetWithArray:yourArray];
现在可以将其转换回唯一的NSArray
NSArray *uniqueArray = orderedSet.array;
或者直接使用orderedSet,因为它有和NSArray一样的方法,比如objectAtIndex:
、firstObject
等等。
在NSOrderedSet
上使用contains
进行成员资格检查比在NSArray
上更快
有关更多信息,请查看NSOrderedSet Reference
发布于 2013-05-14 16:35:42
在OS X v10.7及更高版本中可用。
如果你担心订单,正确的方法是
NSArray *no = [[NSOrderedSet orderedSetWithArray:originalArray]allObjects];
下面是按顺序从NSArray中删除重复值的代码。
发布于 2015-06-02 17:30:18
需要订单
NSArray *yourarray = @[@"a",@"b",@"c"];
NSOrderedSet *orderedSet = [NSOrderedSet orderedSetWithArray:yourarray];
NSArray *arrayWithoutDuplicates = [orderedSet array];
NSLog(@"%@",arrayWithoutDuplicates);
或者不需要命令
NSSet *set = [NSSet setWithArray:yourarray];
NSArray *arrayWithoutOrder = [set allObjects];
NSLog(@"%@",arrayWithoutOrder);
https://stackoverflow.com/questions/1025674
复制相似问题