zoukankan      html  css  js  c++  java
  • 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:) //不区分大小排序

  • 相关阅读:
    Tomcat常设参数
    JSON
    Linux常用命令
    【Swagger2】【3】API注解详解,以及注解常用参数配置
    【实战问题】【13】报错springBoot-tk.mybatis.mapper.MapperException: 无法获取实体类com.xx.User对应的表名!
    【实战问题】【12】报错org.apache.commons.lang.exception.NestableRuntimeException
    【Java】【50】BeanUtils.copyProperties();只从源对象中拷贝自己为null的值
    【JS】【32】清空file文件域
    【MySQL】【7】AES_ENCRYPT()加密与AES_DECRYPT()解密
    【Swagger2】【2】SpringBoot整合Swagger2
  • 原文地址:https://www.cnblogs.com/appwgh/p/2523209.html
Copyright © 2011-2022 走看看