`

对数组进行排序(不写compare:方法)

阅读更多
对数组进行排序(不写compare:方法)
NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) {
if ([obj1 integerValue] > [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([obj1 integerValue] < [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];

以前只用过[array sortedArrayUsingSelector:@selector(compare:)];方法,若没有现成的compare:方法还要自己写一个新的比较方法,比较麻烦.
在研究对数组逆向排序时看到了这个方法,貌似是4.0新出的blocks.(Block, 简单的说,就是一个函数对象,和其它类型的对象一样,你可以创建它,可以赋给一个变量,也可以作为函数的参数来传递)
blocks传送门:http://www.cocoachina.com/macdev/objc/2010/0601/1591.html
用法:若sortedArray存的数据是Person类的对象,(name,age,address...),要以age排序,即将上面方法中的[obj1 intergerValue] 改为[obj1/2 age]即可;或 要倒序排列,则将NSOrderedDescending和NSOrderedAscending调换.
分享到:
评论

相关推荐

    c#中使用委托按升序和降序对一组随机生成的整型数组元素进行排序

    要求:不提供单独的升序和降序排序方法(不分别定义一个升序和一个降序方法),而只提供一个排序方法SortArray(),它接受一个委托类型的参数compare,该参数会引用要使用的比较方法。为执行降序排序,向排序方法...

    利用 Array.Sort()函数对数组排序

    在C#编程语言中,`Array.Sort()`方法是用于对数组进行排序的关键工具。这个方法提供了对数组元素的快速、高效排序,适用于多种数据类型,包括整型、浮点型、字符串以及自定义对象。本篇文章将深入探讨`Array.Sort()`...

    iOS模型数组排序

    总结来说,`sortedArrayUsingComparator`是Objective-C中对数组进行自定义排序的强大工具,通过提供自定义的比较Block,我们可以根据业务需求灵活地对模型数组进行排序。在实际开发中,它常用于创建用户友好的列表或...

    NSArray排序demo

    本篇文章将深入探讨`NSArray`的排序方法,并通过一个名为"NSArrayDemo"的示例来演示如何对数组进行排序。 首先,我们要明白`NSArray`本身不支持直接的排序操作,因为它是不可变的,也就是说一旦创建,其内部对象的...

    从零开始学iOS7开发系列教程-事务管理软件开发实战-Chapter231

    在本例中,我们需要在两个情况下对数组进行排序:当用户添加一个新的 checklist 时和当某个 checklist 被重命名时。在这两种情况下,我们需要对列表进行排序,以确保列表中的项按照特定的顺序排列。 在 ...

    ios开发多种排序法

    此外,还可以使用`sort()`方法对数组就地排序,这会改变原数组: ```swift people.sort { $0.age $1.age } // 对数组就地排序 ``` 在处理自定义数据类型时,确保遵循`Comparable`协议可以使排序更方便。例如,对于...

    JAVA 对象数组按照多个属性进行排序

    对于对象数组,如果对象类实现了`Comparable`接口,我们可以直接使用`Arrays.sort()`方法对数组进行排序。但是,当需要按照多个属性排序时,我们需要自定义`Comparator`。例如,假设我们有一个`Person`类,包含`...

    IOS根据汉字(或英文)按字母排序并按首字母分组

    在Objective-C中,我们可以使用`NSArray`类的`sortedArrayUsingComparator:`方法来对数组进行自定义排序。这个方法接受一个比较器 block,其中我们可以指定如何比较数组中的元素。对于字符串,我们可以基于Unicode值...

    JavaScript中用sort()方法对数组元素进行排序的操作

    JavaScript数组sort()方法排序数组的元素。 语法 array.sort( compareFunction ); 下面是参数的详细信息: compareFunction : 指定一个函数,定义排序次序。如果省略,数组字典顺序排序。 返回值: 返回一个排序的...

    使用php对二维数组按数组值进行排序

    以下是一个具体示例,展示了如何按照二维数组中的特定键(例如“score”)对数组进行升序排序: ```php // 假设我们有以下二维数组 $students = array( array('name' =&gt; '张三', 'score' =&gt; 85), array('name' =...

    Java5.0数组排序

    在Java 5.0之前,我们通常使用`Arrays.sort()`方法来对数组进行排序,但该方法的功能相对有限。Java 5.0中,`java.util.Arrays`类和`java.util.Collections`类都得到了升级,提供了更强大的排序功能。 一、Java 5.0...

    zuoxiaobai#zuo11.com#JS sort对数组进行默认排序时如果有数字为什么会不准确?1

    我们来看看MDN官方解释 arr.sort([compareFunction])compareFunction(Optional),Specifies a fu

    26英文字母排序

    在Java中,可以使用Collections类的`sort()`方法对ArrayList或LinkedList进行排序,或者使用Arrays类的`sort()`方法对数组进行排序。例如,对于一个字符数组: ```java char[] alphabet = {'A', 'B', 'C', ..., 'Y'...

    js 根据对象数组中的属性进行排序实现代码

    首先,JavaScript的`Array.prototype.sort()`方法是一个内置函数,用于对数组进行原地排序。这个方法接受一个比较函数作为参数,这个函数定义了数组元素之间的比较规则。比较函数需要返回一个负数、零或正数,以指示...

    java 排序 完成收录

    首先,`Arrays.sort()`方法是最常用的一个,它可以直接对数组进行排序。这个方法支持基本类型数组(如int[]、double[])以及对象数组。例如,对于整型数组,可以这样使用: ```java int[] numbers = {5, 3, 9, 1, 7...

    natural-orderby:轻量级(压缩后&lt;1.6kB),通过区分Unicode字符,数字,日期等来对数组和集合进行自然排序

    1.6kB),通过区分Unicode字符,数字,日期等来对数组和集合进行自然排序。 人们对包含数字的字符串进行排序的方式与大多数排序算法不同,后者通过按Unicode代码点顺序比较字符串来对值进行排序。 这会产生与人的...

    talbe使用js排序

    JavaScript提供了数组的`sort()`方法,可以对数组中的元素进行排序。在表格排序中,我们需要先获取表格中的数据,将其转换为数组,然后应用`sort()`方法,最后更新表格显示。 ### 3. 获取表格数据 - 使用DOM遍历:...

    HashTable排序.txt

    接下来,它使用`Arrays.sort()`方法对数组进行排序,传入一个自定义比较器,该比较器根据键的自然顺序(即实现`Comparable`接口)进行比较。 #### 方法二:遍历打印排序后的键值 ```java Map.Entry[] set = ...

    Sort()函数的多种用法_.docx

    本文将详细介绍Sort()函数的多种用法,包括默认排序、对数值进行排序、依据某个对象属性对数组进行排序等。 一、默认状况 Sort()函数在默认状况下,按升序排列数组项。为了实现排序,Sort()函数会调用每个数组项的...

    数字和字符排序(C++语言编写)

    // 对数组排序 std::vector&lt;int&gt; vec = {3, 7, 1, 8, 2}; std::sort(vec.begin(), vec.end()); // 对vector排序 ``` 对于字符串排序,`sort()`函数同样适用,但需要确保字符串是可以比较的。C++中的字符串是`std:...

Global site tag (gtag.js) - Google Analytics