检查NSMutableArray是否包含另一个数组的值

时间:2011-10-06 21:35:23

标签: iphone objective-c ios algorithm nsmutablearray

我有3个NSMutableArray个对象,其中包含CMTime个对象。如何以有效的方式遍历所有这三个,并找出这三个中是否存在重复值?例如,我正在迭代其中一个时间并读取该值并将其存储在x中。现在,我想看看x是否在其他两个数组中出现(在任何位置)。我尝试寻找contains方法,但找不到方法。我确实遇到过filterUsingPredicate,但我不确定这是否是最佳方式,也不知道如何实际使用谓词。

2 个答案:

答案 0 :(得分:10)

  

我试过找一个包含方法,但找不到一个。

使用indexOfObject:

像这样:

if ([array indexOfObject:object] != NSNotFound) {
    // object found
}
else {
    // object not found
}

答案 1 :(得分:1)

您可以使用([yourArray indexOfObject:x] != NSNotFound)代替丢失的contains方法。但是,如果您快速,经常或使用大量元素执行此操作,则应考虑使用NSMutableOrderedSet,其排序方式与NSMutableArray类似,但提供快速有效的contains方法,以及允许联合和交集等快速操作,这可能允许您重新设计算法以更少地迭代元素。