在Objective-C中是否有任何类似于Java中的TreeSet或TreeDictionary的模拟。基本上,是通过树(排序的)与哈希表(未排序的)实现的Set或Dictionary数据结构。

谢谢!

最佳答案

从OS X 10.7和iOS 5.0开始,您可以使用NSOrderedSet。但是,没有NSOrderedDictionary

NSOrderedSet根据元素的插入位置对其进行排序,而不是根据比较器功能进行排序。您可以使用indexOfObject:inSortedRange:options:usingComparator:选项使用NSBinarySearchingInsertionIndex查找插入新对象的索引,从而有效地维护排序顺序。

还要注意,尽管NSOrderedSetNSSetNSArray都理解许多相同的消息,但它不是两者的子类。

09-11 17:54