objective-c - 计算 NSArray 中的相等对象

标签 objective-c foundation

我一直在尝试找出一种方法来检查 NSArray 中有多少特定对象。

我已经查看了文档,我很确定没有针对此的预制方法。此外,我在 SO 上找不到任何内容。

有人知道这样做的好方法吗?因为我真的想不出任何东西。

在这种特定情况下,我有一个包含字符串的数组(大多数情况下每个都有几个),我想计算数组中有多少字符串与我要求的匹配。

最佳答案

如果这是数据结构的主要用途并且顺序无关紧要,请考虑切换到专门用于有效解决此问题的 NSCountedSet

如果您需要一个有序的集合,并且您没有大量的对象,那么快速枚举答案是最好的方法。

如果您想知道对象在哪里,请使用 indexesOfObjectsPassingTest:

如果您有大量对象,我会查看带有 NSEnumerationConcurrent 选项的 indexesOfObjectsWithOptions:passingTest:。这将允许您在多个内核上搜索阵列。 (这只可能在多核设备上更快,即使那样可能只有在你有一个非常大的集合时才会更快。在假设并发会更快之前你应该绝对测试。)即使你只需要最后的计数,对于某些数据集,使用此方法然后在最终索引集上使用 count 会更快。

关于objective-c - 计算 NSArray 中的相等对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12426951/

相关文章:

ios - 富文本格式目录文件到 NSAttributedString

ios - 如何正确序列化/反序列化 NSLocale?

swift - Grand Central Dispatch with Swift : Use of unresolved identifier GCD

ios - 为什么 Data.append(_ :) not take a rawValue of an enum of type Int in Swift for iOS?

ios - 在 iOS 8 中,如何在 la Mail.app 中实现长扫删除手势

objective-c - 如何在 Mac 命令行应用程序中获取自定义 url?

objective-c - 在 AFHTTPRequestOperation Manager 和 AFHTTPSessionManager 之间进行选择时的建议

swift - Date.addingTimeInterval(_ :) and Date. advanced(by :)?)有什么区别

ios - 如何扩展 Swift Dictionary 类型以返回非空 String 或 nil

ios - 在解析推送通知中将用户名作为变量发送