iOS 数组和字典排序

一、数组排序

  数组排序方式1:

 1 //初始化可变数组
 2         NSMutableArray *arr1=[NSMutableArray arrayWithObjects:@"giu",@"min",@"Deng",@"liumin", nil];
 3         //字符串排序
 4         //创建排序描述符对象NSSortDescriptor,key为空,ascending:升序
 5         NSSortDescriptor *decri =[NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
 6         //定义一个数组,用来盛放排序条件
 7         NSArray *des =[NSArray arrayWithObject:decri];
 8         //开始排序
 9         [arr1 sortUsingDescriptors:des];
10         //打印排序内容
11         for (int i=0; i<arr1.count; i++)
12         {
13             NSLog(@"arr=%@",[arr1 objectAtIndex:i]);
14         }

 数组排序方式2:

1    NSMutableArray *arr2=[NSMutableArray arrayWithObjects:@"c", @"A",@"z",@"D",nil];
2         
3         //区分大小写排序 自带compar方法  选择排序
4         [arr2 sortUsingSelector:@selector(compare:)];
5         for (int i=0; i<arr2.count; i++)
6         {
7             NSLog(@"arr2=%@",[arr2 objectAtIndex:i]);
8         }

二、字典的排序 

 1 //创建5个排序对象
 2     NSDictionary *dic1 =@{@"price":@"30",@"name":@"liu"};
 3     NSDictionary *dic2 =@{@"price":@"150",@"name":@"huang"};
 4     NSDictionary *dic3 =@{@"price":@"37",@"name":@"yoyu"};
 5     NSDictionary *dic4 =@{@"price":@"25",@"name":@"yofu"};
 6     NSDictionary *dic5 =@{@"price":@"172",@"name":@"yosu"};
 7     //将这些对象放进数组
 8     NSArray *arr =[NSArray arrayWithObjects:dic1,dic2,dic3,dic4, dic5,nil];
 9     //调用数组排序方法
10     NSArray *arr2 = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2)
11     {
12         //取出对象里的一个值作比较,根据大小返回结果
13         NSString  *c = [obj1 valueForKey:@"price"];
14         NSString  *d = [obj2 valueForKey:@"price"];
15         int a =[c intValue]; //转成整形int比较
16         int b =[d intValue];
17         //按照降序排列,如果升序就返回结果对换
18         if (a > b)
19         {
20             return NSOrderedAscending;
21         }else
22         {
23             return NSOrderedDescending;
24         }
25        
26     }];
27     //循环遍历排序后的字典数组
28     for (NSDictionary *dic in arr2)
29     {
30          NSLog(@"%@",dic);
31     }
原文地址:https://www.cnblogs.com/qq95230/p/4803038.html