排序 NSDictionary

Posted

技术标签:

【中文标题】排序 NSDictionary【英文标题】:Sorting NSDictionary 【发布时间】:2010-02-13 08:35:51 【问题描述】:

我想知道是否有人可以告诉我如何对NSDictionary 进行排序;我想从最后一个条目开始阅读它,因为键是日期+时间,我希望能够将它附加到NSMutableString。我可以使用枚举器读取它,但没有得到我想要的结果。

谢谢

【问题讨论】:

【参考方案1】:

根据您的要求,最简单的方法是从键创建一个新数组,对其进行排序,然后使用该数组引用原始字典中的项目。

(注意 myComparison 是您自己的方法,将比较两个键)。

NSMutableArray* tempArray = [NSMutableArray arrayWithArray:[myDict allKeys]]; 
[tempArray sortedArrayUsingSelector:@selector(myComparison:)];

for (Foo* f in tempArray)

  Value* val = [myDict objectForKey:f];

【讨论】:

【参考方案2】:

我汇总了 *** 上的一些其他建议,将 NSDictionary 排序为非常紧凑的内容,可以按字母顺序排序。我在“路径”中有一个 Plist 文件,我将其加载到内存中并想要转储。

NSDictionary    *glossary = [NSDictionary dictionaryWithContentsOfFile: path];
NSArray         *array1 = [[glossary allKeys] sortedArrayUsingDescriptors:@[ [NSSortDescriptor  sortDescriptorWithKey:@"" ascending:YES selector:@selector(localizedStandardCompare:)] ]];
for ( int i=0; i<array1.count; i++)

    NSString* key = [array1 objectAtIndex:i];
    NSString* value = [glossary objectForKey:key];
    NSLog(@"Key=%@, Value=%@", key, value );

【讨论】:

以上是关于排序 NSDictionary的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序,快速排序,归并排序,插入排序,希尔排序,堆排序,计数排序,桶排序,基数排序

常见排序算法的实现(归并排序快速排序堆排序选择排序插入排序希尔排序)

经典排序算法和python详解:归并排序快速排序堆排序计数排序桶排序和基数排序

Python八大算法的实现,插入排序希尔排序冒泡排序快速排序直接选择排序堆排序归并排序基数排序。

排序算法非比较排序:计数排序基数排序桶排序

数据结构(15)---排序(冒泡排序, 快速排序, 归并排序, 计数排序)