美文网首页
数组排序 sortUsingDescriptors:等

数组排序 sortUsingDescriptors:等

作者: 超_iOS | 来源:发表于2018-06-07 16:16 被阅读182次

- (void)sortUsingDescriptors:(NSArray<NSSortDescriptor *> *)sortDescriptors;

该方法的作用就是:利用给定的排序描述符,对对象进行排序。

  • (instancetype)sortDescriptorWithKey:(nullable NSString *)key ascending:(BOOL)ascending
  • (instancetype)initWithKey:(nullable NSString *)key ascending:(BOOL)ascending
key : 排序key, 某个对象的属性名称; 如果对字符串进行排序, 则传nil
ascending : 是否升序, YES-升序, NO-降序

看一下参数

sortDescriptors:包含用于对接收数组的内容进行排序的NSSortDescriptor对象的数组。
看示例代码

- (void)demoSortDescription
{
    NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"2030",@"year", @"1",@"month",nil];
    NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"2010",@"year", @"2",@"month", nil];
    NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"2050",@"year", @"3",@"month" ,nil];
    NSDictionary *dic4 = [NSDictionary dictionaryWithObjectsAndKeys:@"2014",@"year",  @"4",@"month",nil];
    NSDictionary *dic5 = [NSDictionary dictionaryWithObjectsAndKeys:@"2050",@"year",  @"4",@"month",nil];
    
    NSMutableArray *arrM = [NSMutableArray arrayWithObjects:dic1, dic2, dic3, dic4, dic5, nil];
    
    NSSortDescriptor *descripor = [NSSortDescriptor sortDescriptorWithKey:@"year" ascending:YES];
    NSSortDescriptor *descripor2 = [NSSortDescriptor sortDescriptorWithKey:@"month" ascending:YES];
    [arrM sortUsingDescriptors:[NSArray arrayWithObjects:descripor, descripor2, nil]];//先按第一个来拍,再按第二个来拍
    
    NSLog(@"resultArr = %@", arrM);
}

看输出结果

2017-08-26 23:51:46.047 JJOC[18488:495473] resultArr = (
        {
        month = 2;
        year = 2010;
    },
        {
        month = 4;
        year = 2014;
    },
        {
        month = 1;
        year = 2030;
    },
        {
        month = 3;
        year = 2050;
    },
        {
        month = 4;
        year = 2050;
    }
)

结论:利用排序描述符进行排序。

参考链接:https://www.jianshu.com/p/2e09f9d30a40

相关文章

  • 数组排序 sortUsingDescriptors:等

    - (void)sortUsingDescriptors:(NSArray...

  • 算法小专栏:选择排序

    本篇将重点介绍选择排序,在讲解选择排序之前,我们先复习一下数组和链表等知识。 一、数组 or 链表? 数组和链表作...

  • JavaScript实现排序算法

    排序算法主要用于元素的数组排序,常见的排序算法有冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序等,这些...

  • iOS 各种排序

    数组排序 数组中字典排序 数组中字典按照某个value排序 排序方法

  • Java 数组的排序、逆序

    数组的排序、逆序测试数据 数组选择排序 数组冒泡排序 数组逆序

  • 面试常见算法总结-数组

    数组 1、从一个给定的、无序的数组中,找出第二小的数值 方法一:先按递增顺序对数组排序(堆排、快排、归并排序等),...

  • java 数组和list排序

    数组排序 其中有数组排序和数组对象排序 数组一些数字排序则直接用Arrays.sort()加数组就可以。数组对象则...

  • 数组

    数组的遍历 数组是值类型 数组的排序 冒泡排序 多维数组

  • 2018-01-14

    php数组排序 sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据...

  • PHP排序算法

    排序算法 冒泡排序(数组排序) 快速排序(数组排序) 参考 http://www.cnblogs.com/enia...

网友评论

      本文标题:数组排序 sortUsingDescriptors:等

      本文链接:https://www.haomeiwen.com/subject/ojbgsftx.html