美文网首页
对数组进行排序

对数组进行排序

作者: 七叶5 | 来源:发表于2017-08-05 09:27 被阅读8次

对于简单对象,及系统自带的,例如:NSString,NSNumber,NSMutableArray等可用sortedArrayUsingSelector或sortUsingSelector
1.不可变数组

NSArray *array1 = @[@"11",@"a",@"mm",@"ii",@"tr",@"oo",@"rt"];
NSArray *sortArray = [array1 sortedArrayUsingSelector:@selector(compare:)];
        NSLog(@"sortArray = %@",sortArray);

2.把数组一的值拷贝给给变数值二,可变数组

NSMutableArray *array2 = [NSMutableArray arrayWithArray:array1];

//可变数组排序,没有返回值.参数类型是SEL那么代表此参数是个方法

  [array2 sortUsingSelector:@selector(compare:)];
NSLog(@"array2 = %@",array2);

3.不可变 数组中存储复杂对象时

   Person *per1 = [Person personName:@"m淼淼" sex:@"女" age:18];
        Person *per2 = [Person personName:@"x香香" sex:@"女" age:22];
        Person *per3 = [Person personName:@"w王发" sex:@"男" age:32];
        Person *per4 = [Person personName:@"z张静" sex:@"女" age:20]; 
NSArray *arr1 = @[per1,per2,per3,per4];    
```c
//NSSortDescriptor *description1 = [NSSortDescriptor sortDescriptorWithKey:arr1 ascending:YES];数组arr1中存储的是复杂对象,是不可以使用sort方法进行排序的.因为compare只适用于系统的简单对象进行排序
```c
NSSortDescriptor *description1 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO];
        NSArray *newArray1 = [arr1 sortedArrayUsingDescriptors:@[description1]];
        //遍历数组输出结果
        for (Person *p in newArray1) {
            NSLog(@"des1=%@", p);
        }

4.定义可变数组,进行排序,按名字降序排序

NSMutableArray *mArray = [NSMutableArray arrayWithArray:arr1];
        NSSortDescriptor *des2 = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
        [mArray sortedArrayUsingDescriptors:@[des2]];
        for (Person *p in mArray) {
            NSLog(@"%@des2", p);

相关文章

  • 学习算法第三天 —— 排序

    题目:对数组进行排序冒泡排序插入排序快速排序归并排序 题目 对一个数组进行排序,所有的方法: 冒泡排序 时间复杂度...

  • sort原理

    sort()对数组进行排序,原数组改变 sort()方法没有参数时,按照ascii码对元素进行排序 sort()方...

  • PHP array_multisort 数组排序 保留键名

    array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联(...

  • Java实例-数组

    1、Java 实例 – 数组排序及元素查找:使用sort()方法对Java数组进行排序,使用 binarySear...

  • PHP中级工程师面试题

    使用什么函数去按值对一个多维数组进行排序?如果排序中要保留关键字呢?如何对关键词对多维数组进行排序? 什么时候需要...

  • C++结构体案例2

    对英雄数组按年龄进行排序 输出结果

  • 对模型数组进行排序

    代码 疑问:如何更优雅地对模型数组进行排序? 排序的key可能是动态变化的,而我又不想使用这种硬编码(@"scor...

  • OC数组大小排序算法

    1、要排序的数组如下,数字里面是字典,字典有两对键值对,数组需要按照字典里temp大小进行排序。 2、排序算法如下...

  • Java 数组

    Java 实例 - 数组排序及元素查找 以下实例演示了如何使用sort()方法对Java数组进行排序,及如何使用 ...

  • Java 排序

    概述 ​对Java对数组对象进行排序,Java对排序问题的处理。Java排序一般包括基础排序和Lambda Com...

网友评论

      本文标题:对数组进行排序

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