2012-05-25 49 views

回答

5

如果你只有5个字符串,可能没有什么比比较一个一个更快。

但是,如果您有很多字符串,请使用所有这些字符串创建一个NSSet,然后通过使用-[containsObject:]来检查该字符串是否为该集的成员。

+0

+1的一个好方法,但值得注意的是NSSet的'-containsObject:'可能使用'-isEqual:'。 NSString文档说如果你知道两个对象都是字符串,'-isEqualToString:'比'-isEqual:'更快,所以'-containsObject:'可能不会更快。 – Caleb

+0

-containsObject:如果字符串不存在,或者一个是-hash和one-isEqual:如果该字符串存在,则为one -hash。调用-isEqualToString:在每个字符串上是1-N调用,平均N/2。因此,除非字符串长度与N的顺序相同(因此“如果只有5个字符串”位),则没有比较 - 这是一个常数算法与线性算法的比较。 – abarnert

+0

我已经创建了我所有字符串的NSSet。有没有办法判断是否有重复?还有可能知道NSSet中的哪些条目是重复的吗?谢谢 – acidic

相关问题