数组的比较(使用block比较的方式)

NSArray *array = @[@"19",@"7",@"3",@"4",@"5",@"8"];
        NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) {
            
            if ([obj1 integerValue] > [obj2 integerValue]) {
                return -1L;
            }
            
            if ([obj1 integerValue] < [obj2 integerValue]) {
                return 1L;
            }
            return 0L;
        }];
        NSLog(@"%@",sortedArray);

   //使用Seltor来选择比较数组

NSArray *array22 = @[@1,@2,@13,@12,@23];
        NSArray *resultArray1 = [array22 sortedArrayUsingSelector:@selector(compare:)];
        NSLog(@"%@",resultArray1);

时间: 2024-10-02 04:53:51

数组的比较(使用block比较的方式)的相关文章

(一)C++入门——指针与数组——Expression: _CrtIsValidHeapPointer(Block)

最近在入门c++,在看<c++ Primer Plus>一书.书中P106提到,删除使用New创建的数组时,是将指针重新指到第一个元素后,再进行的删除操作.代码如下: int *ptest = new int[3]; ptest[0]=1; ptest[1]=2; ptest[2]=3; cout<<"*ptest "<<*ptest<<endl; ptest = ptest+1;//此时指针指向第二个元素,也即:ptest[1] cou

JavaScript数组声明和使用的几种方式

演示:http://www.huiyi8.com/jiaoben/包含了javascript特效 1.var beatles = Array(); // 可以指定数组大小如 var beatles = Array(5);   beatles[0] = "Mike"; 2.var beatles = Array("Mike", "John"); 3.var beatles = ["Mike", "John"]

数组元素在内存中的存储方式

代码: #include <stdio.h> #include <stdlib.h> #define L1 5 #define L2 3 // 数组元素是顺序存储的 int main(void) { int arr1[L1] = { 1, 2, 3, 4, 5, }; // 输出一维数组各个元素的地址 for (size_t i = 0; i < L1; ++i) { printf("%17p", &arr1[i]); } printf("

iOS 转换异步block为同步方式运行

使用dispatch_semaphore_t 实现 dispatch_semaphore_t sema = dispatch_semaphore_create(0); //创建信号量 __block ALAssetsGroup *ret = nil; ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) { ret = group; dispatch_se

IOS开发-Object-C Block的实现方式

前言:我们可以把Block当作一个闭包函数,它可以访问外部变量和局部变量,但默认是不可以修改外部变量.你可以使用它来做回调方法,比起使用代理(Delegate)会更加直观.顺带一提,苹果很多的接口(API)都使用了Block. 一.Block的基本定义 Block的基本写法(也是详细写法): returnType (^blockName)(params) = ^returnType(params) { // code... }; 中文再解释:返回类型 (^Block的名字)(Block的参数)

Java数组、集合的三种遍历方式(包懂)

1 for循环 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+" "); } 2 foreach循环,这种方式结构简单,可以简化代码 for(int i:arr){ System.out.print(arr[i]+" "); } 3 迭代器遍历 对于数组而言,就没必要转换为集合类的数据类型,代码反而冗杂.前面两种对于数组集合均适用 迭代器对List的遍历 List list = new Arr

es6 数组..... ==和===的区别 es6的递归方式 es6find函数 timer setTimeout v-html的用法,-

相当于push了  find函数来找到某个值 如果新建一个 setTimeout 的timer 首先得清除这个timer. v-html用法之一就是加载后台传过来的模板 原文地址:https://www.cnblogs.com/houxiaoming/p/9236493.html

JavaScript中清空数组的三种方式

方式1,splice 1 2 3 var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 Array[0],空数组,即被清空了 方式2,length赋值为0 这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值.如 1 2 int[] ary = {1,2,3,4}; ary.length = 0; Java中会报错,编译通不过.而JS中则可以,且将数组清空了, 1 2 3 var a

清空数组的三种方式

清空数组的三种方式: 1.splice(0,数组的长度): var arr1 = arr.splice(0,arr.length); console.log(arr1); 2.让数组的长度为0: 这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值.如   int[] ary = {1,2,3,4}; ary.length = 0; Java中会报错,编译通不过.而JS中则可以,且将数组清空了; (在JS中length的属性是可读可写的,也就是可以给length属性赋值