我想知道如何在NSMutableSet实例中实现union set。我有两个需要经常加入工会的大型集合,我想知道我是否应该实现自己的工会化两套方式,或者Apple的方式是否足够快。
答案 0 :(得分:1)
我敢打赌Apple版本经过大量优化。为什么不运行Instruments并查看是否存在性能问题?
有关CFSet源代码,请参阅:opensource.apple.com
static Boolean __CFSetEqual(CFTypeRef cf1, CFTypeRef cf2) {
return __CFBasicHashEqual((CFBasicHashRef)cf1, (CFBasicHashRef)cf2);
}
static CFHashCode __CFSetHash(CFTypeRef cf) {
return __CFBasicHashHash((CFBasicHashRef)cf);
}
答案 1 :(得分:1)
NSMutableSet
的效果在很大程度上取决于集合中对象对-hash
和-isEqual
的实现。我不认为你自己实现它可以提高性能。但是,您可以尝试它,然后分析您的代码,看它是否“太慢了。”