2012-05-25 47 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

相關問題