我有一个 NSMutableArray 并说我在那里有一个“天”列,其中包含的数据范围从 0-4 说我有 5 行这样
0
0
1
2
3
我想计算有多少独特的项目,所以在这种情况下它会返回 4,因为它不会计算第二个 0。
谢谢你的帮助
怎么样[NSSet setWithArray:yourArray].count
。
这是直截了当的。您想要做的是删除数组中的重复项并获取唯一项的计数。这可以通过使用 NSSet 和 NSMutableArray 来完成:
[uniqueArray addObjectsFromArray:[[NSSet setWithArray:duplicateArray] allObjects]];
[uniqueArray count];
希望这有帮助
如果您的数组已经排序,您可以通过它进行一次传递,维护一个包含“当前”值的变量和一个计数器,每次当前值与索引处的值不匹配时递增(然后更新“当前”值以匹配。这需要比上面更多的代码行,但如果数组足够大,从所有数组元素构建一个集合是一项足以影响性能的大任务,则速度要快得多。