0

我有一个 NSMutableArray 并说我在那里有一个“天”列,其中包含的数据范围从 0-4 说我有 5 行这样

0
0
1
2
3

我想计算有多少独特的项目,所以在这种情况下它会返回 4,因为它不会计算第二个 0。

谢谢你的帮助

4

3 回答 3

1

怎么样[NSSet setWithArray:yourArray].count

于 2013-02-13T22:04:40.713 回答
0

这是直截了当的。您想要做的是删除数组中的重复项并获取唯一项的计数。这可以通过使用 NSSet 和 NSMutableArray 来完成:

[uniqueArray addObjectsFromArray:[[NSSet setWithArray:duplicateArray] allObjects]];
[uniqueArray count];

希望这有帮助

于 2013-02-13T22:01:39.267 回答
0

如果您的数组已经排序,您可以通过它进行一次传递,维护一个包含“当前”值的变量和一个计数器,每次当前值与索引处的值不匹配时递增(然后更新“当前”值以匹配。这需要比上面更多的代码行,但如果数组足够大,从所有数组元素构建一个集合是一项足以影响性能的大任务,则速度要快得多。

于 2013-02-13T22:09:42.390 回答