NSArray元素排序,按字母顺序显示NSDictionary中内容

//Grade类中有name,score  要求将NSArray中Gradedui对象按score高低排序输出

Grade.h文件

@property (nonatomic,copy)NSString *name;

@property (assign)float score;


main文件

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        Grade *g1 = [[Grade alloc]initWithName:@"ycw" withScore:80.2];
        Grade *g2 = [[Grade alloc]initWithName:@"lhj" withScore:95.3];
        Grade *g3 = [[Grade alloc]initWithName:@"cw" withScore:64.9];
        Grade *g4 = [[Grade alloc]initWithName:@"dxw" withScore:84.7];
        Grade *g5 = [[Grade alloc]initWithName:@"sk" withScore:48.4];
        Grade *g6 = [[Grade alloc]initWithName:@"yt" withScore:74.2];
        
        NSMutableArray *array = [NSMutableArray arrayWithObjects:g1,g2,g3,g4,g5,g6,nil];
        
        
       NSArray * array2 = [array sortedArrayUsingComparator:^NSComparisonResult(Grade * obj1,Grade * obj2) {
          

            NSNumber *num1 = [NSNumber numberWithFloat:obj1.score];
            
            NSNumber *num2 = [NSNumber numberWithFloat:obj2.score];

           if([num2 compare:num1]== NSOrderedSame)
            {
                
                return [obj1.name compare:obj2.name];       //若分数相同,再按name的搜字母顺序排序
                
            }


            
            
            return [num2 compare:num1];      // 注意compare比较的是对象,所以要先将float类型的score转化成NSNumber对象,然后才能比较
        }];
        


    return 0;
}



//遍历输出字典

NSMutableDictionary *glossary = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"你好",@"hello",

                    @"世界" ,@"world",@"加油",@"fight", nil];
        
        for (NSString *key in glossary) {
            
            
            NSLog(@"key = %@,values = %@",key,[glossary objectForKey:key]);
        }

       


//按字母顺序显示字典中内容       
        NSArray *keys = [glossary allKeys];
        
        keys = [keys sortedArrayUsingComparator:
                ^(NSString *obj1,NSString *obj2){
                    return [obj1 compare:obj2];
                }];
        
        
        for(NSString *key in keys)
        {
            NSLog(@"key = %@,values = %@",key,[glossary objectForKey:key]);
            
        }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值