我有兩種類型的對象。基於與另一個NSSet中不同對象的相等性過濾NSSet
A類是NSManagedObject的子類。 B類是NSObject的一個子類。
S(A)是含有類A. S(B)爲含有類B的對象的NSSet中的對象的NSSet中
我對類A的自定義比較找出如果它匹配的B的對象。
我需要過濾S(A),使得在過濾操作後,只有那些對象保留在S(A)中,它們在S(B)中有一個有效的匹配。 (A),並且每個對象在時間複雜度爲O(mn)的S(B)上迭代(m是S(A)的大小,n是大小的S(B))。
這裏最大的約束是A是NSManagedObject的子類,因此我無法重寫-isEqual:和-hash方法以利用NSMutableSet上的-intersectSet:方法。
我正在尋找比O(mn)更好的解決方案。任何線索將不勝感激。
有什麼辦法來訂購這兩套,以便找到一個匹配比O(n)更快? –
什麼構成等價?一個鍵/值對?你能利用它嗎?作爲一個集合,你可以刪除匹配的項目,因爲你知道它們不能再被看到。 – Wain
等效性基於1個字符串比較和1個整數相等。 –