美文网首页
iOS 数组处理

iOS 数组处理

作者: 笑颜_d1ed | 来源:发表于2021-08-26 11:03 被阅读0次

二维数组转一维数组:


    NSArray *array = @[
                       @[@"11", @"12"],
                       @[@"21", @"22"],
                       @[@"31", @"32"],
                       @[@"41", @"42"],
                       @[@"51", @"52"]];

    NSArray *tmpArray = array[0];
    NSMutableArray *secArray = [NSMutableArray arrayWithCapacity:(tmpArray.count*array.count)];
    for (NSInteger i=0; i<(tmpArray.count*array.count); i++) {
        [secArray addObject:@"0"];
    }
    
    NSInteger count = array.count;
    for (NSInteger i=0; i<secArray.count; i++) {
        secArray[i] = array[i%count][i/count];
    }
    NSLog(@"**********----%@",secArray);

结果如下:

(
    11,
    21,
    31,
    41,
    51,
    12,
    22,
    32,
    42,
    52
)

当把上面代码下方替换 就改变了排序位置

   NSInteger count = tmpArray.count;
    for (NSInteger i=0; i<secArray.count; i++) {
        secArray[i] = array[i/count][i%count];
    }

改变结果如下:

(
    11,
    12,
    21,
    22,
    31,
    32,
    41,
    42,
    51,
    52
)

二维数组倒置:

   NSArray *tmpArray = array[0];
   NSMutableArray *newArray = [NSMutableArray arrayWithCapacity:tmpArray.count];
   for (NSInteger i=0; i<tmpArray.count; i++) {
       NSMutableArray *lineArray = [NSMutableArray arrayWithCapacity:array.count];
       for (NSInteger j=0; j<array.count; j++) {
           [lineArray addObject:@"0"];
       }
       [newArray addObject:lineArray];
   }
   
   for (NSInteger i=0; i<array.count; i++) {
       for (NSInteger j=0; j<tmpArray.count; j++) {
           newArray[j][i] = array[i][j];
       }
   }
   NSLog(@"**********____%@", newArray);

结果如下:

(
    (
        11,
        21,
        31,
        41,
        51
    ),
        (
        12,
        22,
        32,
        42,
        52
    )
)

一维数组转二维数组(5*2的二维数组)

   NSArray *secArray = @[
                       @"11", @"12",
                       @"21", @"22",
                       @"31", @"32",
                       @"41", @"42",
                       @"51", @"52"
];

   NSMutableArray *transferArray = [NSMutableArray arrayWithCapacity:5];
    for (NSInteger i=0; i<5; i++) {
        NSMutableArray *tmpArray = [NSMutableArray array];
        for (NSInteger j=0; j<2; j++) {
            [tmpArray addObject:@"0"];
        }
        [transferArray addObject:tmpArray];
    }
    for (NSInteger i=0; i<secArray.count; i++) {
        transferArray[i/2][i%2] = secArray[i];
    }
    NSLog(@"**********----%@",transferArray);

   //    5*2;
   //    m = X / 2;    
   //    n = X % 2;    m、n 代表数组下标

打印结果如下:

(
    (
        11,
        12
    ),
        (
        21,
        22
    ),
        (
        31,
        32
    ),
        (
        41,
        42
    ),
        (
        51,
        52
    )
)

相关文章

  • iOS 数组处理

    二维数组转一维数组: 结果如下: 当把上面代码下方替换 就改变了排序位置 改变结果如下: 二维数组倒置: 结果如下...

  • ios 数组处理记录

    //创建一个数组 NSArray*myArray; NSValue*aValue = [NSNumbernumbe...

  • iOS Swift 数组处理

    获取前多少个项的数组 一、声明 初始化空数组 初始化默认值的数组 二、数组基本操作 添加元素 插入元素 删除元素 ...

  • 解决打印数组、字典时中文乱码

    数组 在iOS开发中,经常需要查看数组中得元素是否是自己想要的,但是苹果并没有对直接打印数组中得中文作处理,直接打...

  • 解决打印数组、字典时中文乱码

    数组 在iOS开发中,经常需要查看数组中得元素是否是自己想要的,但是苹果并没有对直接打印数组中得中文作处理,直接打...

  • iOS 数组越界 Crash处理

    我们先来看看有可能会出现的数组越界Crash的地方; 上面代码是有可能会越界的;出现Crash也不好复现,发出去的...

  • IOS 数组去重处理

    在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionar...

  • iOS数组越界问题处理

    在iOS开发中经常回因为数组越界而导致程序崩溃,那么怎么解决这一问题呢?我们需要给NSArray新建一个类的拓展。...

  • iOS 数组越界 Crash处理

    前段时间由于app 没有做好数组越界处理,导致 App 大面积崩溃.数组越界这点小事,苹果也没有帮我们处理好,网上...

  • IOS数组为空的处理

    某些情况下,后台可能由于各种原因,对某个字段返回了null值,这时我们取到的就是[NSNull null]这样一个...

网友评论

      本文标题:iOS 数组处理

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