zoukankan      html  css  js  c++  java
  • block 数组排序

     

     

    #import <Foundation/Foundation.h>

     

        //定义⼀一个block,返回值为BOOL,有两个NSString参数。实现:判

        //断字符串是否相等。

        

        BOOL (^compareString)(NSString *, NSString *) = ^(NSString *str1, NSString *str2){

            if ([str1 isEqualToString:str2]) {

                return YES;

            }else{

                return NO;

            }

        };

        

        if (compareString(@"sss",@"sss")) {

            NSLog(@"相同");

        }

        

        //定义⼀一个block,返回值为NSInteger,有两个参数,⼀一个是 NSArray,⼀一个是NSString。实现:判断数组时候包含此字符串,如 果包含,返回字符串的下标,如果不包括,返回-1。

        NSArray *arr = @[@"aa",@"ss",@"ww"];

        NSString *str = @"ss";

        

        int (^find)(NSArray *, NSString *) = ^(NSArray *arr, NSString *str ){

            for (int i = 0; i < arr.count; i++) {

                if ([arr[i] isEqualToString:str]) {

                    return i;

                }

            }

            return -1;

        };

        

        int f = find(arr,str);

        NSLog(@"%d",f);

        

        

        

        

        //创建⼀一个数组,初始化为@“123",@"21",@"33",@"69", @“108”,

        //@“256”。使⽤用Block语法,进⾏行数组的排序。并输出内容。 排序结果:108 123 21 256 33 69

        //提⽰示:sortedArrayWithOptions:usingComparator:

        //不可变数组

        NSArray *arr1 = @[@"23", @"1", @"3", @"2", @"108"];

        

        NSArray *arr2 = [arr1  sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){

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

                return NSOrderedDescending;

            }

            return NSOrderedSame;

          }

         ];

        

         NSLog(@"sortArray1:%@", arr2);

        

        

        

        

        

        

        NSArray *arr11 = @[@"23", @"1", @"3", @"2", @"108"];

        NSArray *a1 = [arr11  sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){

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

                return NSOrderedDescending;

            }

            return NSOrderedSame;

        }];

        NSLog(@"sortArray1:%@", a1);

     

        

        

        

     

        //5, 给可变数组排序的block

        //5,1

        NSComparator sortBlock = ^(id string1, id string2)

        {

            return [string1 compare:string2];

        };

        NSMutableArray *stringArray = [NSMutableArray arrayWithObjects:@"g", @"c", @"b", @"a",nil];

        NSArray *a = [stringArray sortedArrayUsingComparator:sortBlock];

        NSLog(@"Array:%@", a);

        

        

        //分开写的block 不可变数组

        NSComparator sortBlock1 = ^(id string1, id string2)

        {

            return [string1 compare:string2];

        };

        NSArray *stringArray2 = [NSArray arrayWithObjects:@"g", @"c", @"b", @"a",nil];

        NSArray *a2 = [stringArray2 sortedArrayUsingComparator:sortBlock1];

        NSLog(@"分开写的block 可变数组:%@", a2);

        

     

        

        

        

     //4. 使用Block根据Person的age进行排序,并输出

        [array sortUsingComparator:^NSComparisonResult(Person *p1 ,Person *p2){

            if([p1 age] > [p2 age])

                return NSOrderedDescending;

            else

                return NSOrderedSame;
        }];

        

        

        

    /*

        //根据年龄 升序排列

        [array sortUsingComparator:^NSComparisonResult(id p1, id p2){

            if ([p1 age] > [p2 age]) {  //  <:降序.     >:升序

                return NSOrderedDescending;

            }

            return NSOrderedSame;

        }];

         */

        

     

     

     

  • 相关阅读:
    关于mysql创建数据库中字符集和排序规则的选择
    关于springboot中数据库连接池报错:testWhileIdle is true, validationQuery not set
    微软不允许以maven的方式直接下载该文件 (com.microsoft.sqlserver:sqljdbc4:jar:4.0),记录一下解决方案
    关于 idea 添加 web项目非 maven
    关于 tomcat版本和jdk版本的问题
    关于 jquery中的 只读两种属性(readonly,disabled),
    layui中如何给 表单中的input标签动态赋值,怎么获取父页面中的值
    pl/sql developer F5快捷键
    SQL中的left outer join,inner join,right outer join用法
    Aix下使用rman备份Oracle RAC数据库
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/4111987.html
Copyright © 2011-2022 走看看