• objectc NSArray排序小结


    转自Rainbird的个人博客

    ios的排序不知道是用强大来形容呢,还是要用复杂来形容,反正觉得不如php一个sort函数来的简洁,每次用排序都得去网上现查怎么实现,这不查的次数多了也便有了这个小小的总结。

    1.升序排列

     NSArray *_firstArray = [NSArray arrayWithObjects:@"ccccc",@"bbbbb",@"ddddd",@"aaaaa",nil];
      NSArray *_sortedArray= [_firstArray sortedArrayUsingSelector:@selector(compare:)];
      NSLog(@"未排序:%@",_firstArray);
      NSLog(@"排行后:%@",_sortedArray);
    2012-03-19 23:17:06.748 IOSSortArray[1761:f803] 未排序:(
        ccccc,
        bbbbb,
        ddddd,
        aaaaa
    )
    2012-03-19 23:17:06.749 IOSSortArray[1761:f803] 排行后:(
        aaaaa,
        bbbbb,
        ccccc,
        ddddd
    )

    2.降序排列

      NSMutableArray *_reSortArray= [[NSMutableArray alloc] init];
      for (id _obj in [_sortedArray reverseObjectEnumerator]) {
        [_reSortArray addObject:_obj];
      }
      NSLog(@"降序排列:%@",_reSortArray);
      [_reSortArray release];
    2012-03-19 23:27:20.789 IOSSortArray[2011:f803] 排行后:(
        aaaaa,
        bbbbb,
        ccccc,
        ddddd
    )
    2012-03-19 23:27:20.790 IOSSortArray[2011:f803] 降序排列:(
        ddddd,
        ccccc,
        bbbbb,
        aaaaa
    )

    3.数组里的字典排序(NSDirector排序)

      NSMutableArray *_mutiArray = [[NSMutableArray alloc] init];
      [_mutiArray addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"rainbird",@"name",@"ddabc",@"work", nil]];
      [_mutiArray addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"ainbird",@"name",@"ccabc",@"work", nil]];
      [_mutiArray addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"inbird",@"name",@"fdabc",@"work", nil]];
      [_mutiArray addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"bird",@"name",@"agbc",@"work", nil]];
      [_mutiArray addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"rd",@"name",@"abac",@"work", nil]];
      
      NSSortDescriptor *_sorter  = [[NSSortDescriptor alloc] initWithKey:@"name" 
                                                               ascending:YES];
      NSSortDescriptor *_sorter2 = [[NSSortDescriptor alloc] initWithKey:@"work" 
                                                               ascending:YES];
      NSLog(@"未排序:\n%@",_mutiArray);
      NSLog(@"根据name排序:\n%@",[_mutiArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:_sorter, nil]]);
      NSLog(@"根据work排序:\n%@",[_mutiArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:_sorter2, nil]]);
      
      [_mutiArray release];
      [_sorter release];
      [_sorter2 release];
    2012-03-19 23:34:37.489 IOSSortArray[2119:f803] 未排序:
    (
            {
            name = rainbird;
            work = ddabc;
        },
            {
            name = ainbird;
            work = ccabc;
        },
            {
            name = inbird;
            work = fdabc;
        },
            {
            name = bird;
            work = agbc;
        },
            {
            name = rd;
            work = abac;
        }
    )
    2012-03-19 23:34:37.490 IOSSortArray[2119:f803] 根据name排序:
    (
            {
            name = ainbird;
            work = ccabc;
        },
            {
            name = bird;
            work = agbc;
        },
            {
            name = inbird;
            work = fdabc;
        },
            {
            name = rainbird;
            work = ddabc;
        },
            {
            name = rd;
            work = abac;
        }
    )
    2012-03-19 23:34:37.491 IOSSortArray[2119:f803] 根据work排序:
    (
            {
            name = rd;
            work = abac;
        },
            {
            name = bird;
            work = agbc;
        },
            {
            name = ainbird;
            work = ccabc;
        },
            {
            name = rainbird;
            work = ddabc;
        },
            {
            name = inbird;
            work = fdabc;
        }
    )

    ok,that’s all 源文件下载

    补充:
    sortedArrayUsingSelector:@selector(caseInsensitiveCompare:) //不区分大小排序

  • 相关阅读:
    C++覆盖、重载、多态区别
    C++的模板与类属类
    虚函数表和虚基类表
    常用的设计模式
    计算机内存中的对齐和C++ 类的存储空间大小
    C++的多态
    前端框架你究竟选什么
    [zt]程序员的本质
    javascript
    Web开发人员应有的15本免费电子书
  • 原文地址:https://www.cnblogs.com/appwgh/p/2523209.html
Copyright © 2020-2023  润新知