我有一个NSStrings的数组(实际上是一个可变数组),我想知道数组中有多少个唯一元素。
例如,假设数组由以下组成:
Orange, Lemon, Lemon, Orange, Lemon
然后只有两个独特元素(橙色和柠檬色)。这个数组:
Paul, Steve, John, Harry, Paul, John
..具有四个唯一独特元素。
我如何发现这个号码?
答案 0 :(得分:13)
NSSet
不能包含相等的对象,因此以下工作原理:
NSUInteger count = [[NSSet setWithArray:array] count];
答案 1 :(得分:1)
对数组进行线性扫描,并为每个元素将其添加到NSMutableSet中。 最后计算NSMutableSet中的元素数量。 NSMutableSet不允许添加重复元素。
这比排序数组要快,然后在每次发现新元素时进行线性扫描以增加变量。
编辑:目标-C中的实现由JoostK提供。
答案 2 :(得分:0)
NSUInteger count = [[array valueForKeyPath:@"@distinctUnionOfObjects.self"] count];