1.子母排序

NSArray *kArrSort = [_dic allKeys]; //这里是字母数组:,g,a,b.y,m……

NSArray *resultkArrSort = [kArrSort sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

return [obj1 compare:obj2   options:NSNumericSearch];

}];

NSLog(@"%@",resultkArrSort);

2.数值排序

// sortedArrayUsingComparator:方法并不会改变array数组内部的顺序

NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *obj1, NSNumber *obj2) {

if ([obj1 intValue] < [obj2 intValue]) {

return NSOrderedDescending;

} else {

return NSOrderedAscending;

} }];

NSLog(@"%@", sortedArray);

3.使用NSDescriptor进行排序

我们将要排序的对象是一个Persion类,如下定义:

  1. @interface Person : NSObject
  2. @property (nonatomic, copy) NSString *name;
  3. @property (nonatomic, copy) NSString *surname;
  4. @property (nonatomic, strong) NSDate *dateOfBirth;
  5. @end

而数组中包含如下内容:

  1. Smith John 03/01/1984
  2. Andersen Jane 16/03/1979
  3. Clark Anne 13/09/1995
  4. Smith David 19/07/1981
  5. Johnson Rose 22/02/1989
  1. NSSortDescriptor *firstDescriptor = [[NSSortDescriptor alloc] initWithKey:@"surname" ascending:YES];
  2. NSSortDescriptor *secondDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
  3. NSArray *sortDescriptors = [NSArray arrayWithObjects:firstDescriptor, secondDescriptor, nil];
  4. NSArray *sortedArray = [self.persons sortedArrayUsingDescriptors:sortDescriptors];

上面代码的排序结果如下所示:

  1. Andersen Jane
  2. Clark Anne
  3. Johnson Rose
  4. Smith David
  5. Smith John

Array中对象的排序的更多相关文章

  1. 向Array中添加选择排序

    选择排序思路 在无序区中选出最小的元素,然后将它和有序区的第一个元素交换位置. 选择排序实现 Function.prototype.method = function(name, func){ thi ...

  2. Java ArrayList中对象的排序 (Comparable VS Comparator)

    我们通常使用Collections.sort()方法来对一个简单的数据列表排序.但是当ArrayList是由自定义对象组成的,就需要使用comparable或者comparator接口了.在使用这两者 ...

  3. 向Array中添加希尔排序

    希尔排序思路 我们在第 i 次时取gap = n/(2的i次方),然后将数组分为gap组(从下标0开始,每相邻的gap个元素为一组),接下来我们对每一组进行直接插入排序. 希尔排序实现 Functio ...

  4. List 中对象属性排序

    有几个方法可以实现:让 Student 实现Comparable接口,或是实例化一 个比较器, 现在用 Comparator 比较器实例来做一个:ComparableTest.java import  ...

  5. List集合中对象的排序

    使用到的是: Collections.sort(); 用法是: List<Book> list_book = new ArrayList<Book>(); Book book= ...

  6. array排序(按数组中对象的属性进行排序)

    使用array.sort()对数组中对象的属性进行排序 <template> <div> <a @click="sortArray()">降序& ...

  7. iOS探索:对NSArray中自定义的对象进行排序

    http://mobile.51cto.com/hot-434804.htm 我们开发的每个程序都会使用到一些数据,而这些数据一般被封装在一个自定义的类中.例如一个音乐程序可能会有一个Song类,聊天 ...

  8. java 对list中对象按属性排序

    实体对象类 --略 排序类----实现Comparator接口,重写compare方法 package com.tang.list; import java.util.Comparator; publ ...

  9. java工具类之按对象中某属性排序

    import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang ...

随机推荐

  1. [LeetCode 题解]: Validate Binary Search Tree

    Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...

  2. ubuntu 中安装 Redis

    1.下载安装root@21ebdf03a086:/# apt-cache search redisroot@21ebdf03a086:/# apt-get install redis-server a ...

  3. 也说AOP

    前言 1.引言 2.Aop概念 3.Aop实践 4.总结 一.引言 对于初入行的小白来讲,aop,ioc这两个程序设计思想总是傻傻分不清,不知道是个什么东东?别人再一谈各种框架更是云里雾里...博主今 ...

  4. db事务级别及锁

    相关sql 事务A BEGIN TRANSACTION --执行修改 获取排他锁 UPDATE Product SET Price = 10 WHERE Id = 1 --阶段2 UPDATE Pro ...

  5. codeVS 动态最大子段和

    题目链接:戳我 对于最大子段和,我们只需要维护四个变量--maxl,maxr,maxs,sum(分别表示区间最大前缀子段和,区间最大后缀子段和,区间最大子段和,区间所有数的和) 然后合并的时候是这样的 ...

  6. scrapy框架基础

    一.简介 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性 ...

  7. 一个网站同一域名不同目录下的文件访问到的cookie值不同是什么原因?

    一个网站(e:\test):里面包含多个目录如: html css js php img ..... 等等.然后,我在js目录里面的js文件中设置了cookie:同样也在php目录中的php文件中设置 ...

  8. ubuntu配置多网,网关不起作用的问题

    在/etc/network/interfaces 中设置网络 auto eth0 iface eth0 inet static address 192.168.50.1 gateway 192.168 ...

  9. TX2 内核编译

    准备工作 版本:jetpack3.1,R28.1,TX2 虚拟机:ubuntu14.04 参考文档.编译工具链.源码下载 编译 主要步骤记载如下: export CROSS_COMPILE=<c ...

  10. js 下不同浏览器,new Date转换结果时差

    项目中在android上使用XWalkView作为浏览器,发现在解析时间的时候解析结果和实际结果有时差. android联机调试的截图如下: PC本机调试截图如下: 从android联机调试的截图看, ...