在Objective-C中是否有任何类似于Java中的TreeSet或TreeDictionary的模拟。基本上,是通过树(排序的)与哈希表(未排序的)实现的Set或Dictionary数据结构。
谢谢!
最佳答案
从OS X 10.7和iOS 5.0开始,您可以使用NSOrderedSet
。但是,没有NSOrderedDictionary
。NSOrderedSet
根据元素的插入位置对其进行排序,而不是根据比较器功能进行排序。您可以使用indexOfObject:inSortedRange:options:usingComparator:
选项使用NSBinarySearchingInsertionIndex
查找插入新对象的索引,从而有效地维护排序顺序。
还要注意,尽管NSOrderedSet
与NSSet
和NSArray
都理解许多相同的消息,但它不是两者的子类。