我一直在尝试找出一种方法来检查 NSArray
中有多少特定对象。
我已经查看了文档,我很确定没有针对此的预制方法。此外,我在 SO 上找不到任何内容。
有人知道这样做的好方法吗?因为我真的想不出任何东西。
在这种特定情况下,我有一个包含字符串的数组(大多数情况下每个都有几个),我想计算数组中有多少字符串与我要求的匹配。
最佳答案
如果这是数据结构的主要用途并且顺序无关紧要,请考虑切换到专门用于有效解决此问题的 NSCountedSet
。
如果您需要一个有序的集合,并且您没有大量的对象,那么快速枚举答案是最好的方法。
如果您想知道对象在哪里,请使用 indexesOfObjectsPassingTest:
。
如果您有大量对象,我会查看带有 NSEnumerationConcurrent
选项的 indexesOfObjectsWithOptions:passingTest:
。这将允许您在多个内核上搜索阵列。 (这只可能在多核设备上更快,即使那样可能只有在你有一个非常大的集合时才会更快。在假设并发会更快之前你应该绝对测试。)即使你只需要最后的计数,对于某些数据集,使用此方法然后在最终索引集上使用 count
会更快。
关于objective-c - 计算 NSArray 中的相等对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12426951/