Objective-C 二维数组详解
在实际的项目开发中,二维数组也是常常用到的数据结构。OC中的二维数组也是通过一维数组来建立的,今天我们来详解一下如何在OC中使用二维数组。
【使用NSArray初始化二维数组】
使用NSArray初始化的一维数组和二维数组都是不可变数组。
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //定义2个一维数组; NSArray *firstRow = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil]; NSArray *secondRow = [[NSArray alloc] initWithObjects:@"4",@"5",@"6", nil]; //使用一维数组来初始化二维数组; NSArray *my2DArray = [[NSArray alloc] initWithObjects:firstRow,secondRow, nil]; //输出二维数组对象; NSLog(@"二维数组:%@",my2DArray); //遍历二维数组; for (int i = 0; i < [my2DArray count]; i++) { for (int j = 0; j < firstRow.count; j++) { NSLog(@"二维数组元素:%@",[[my2DArray objectAtIndex:i] objectAtIndex :j]); } } } return 0; }
打印结果如下:
。
【使用NSMutableArray初始化二维数组】
使用NSMutableArray初始化的一维数组和二维数组都是可变的,可以进行修改和插入操作;
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSMutableArray *firstRow = [[NSMutableArray alloc] initWithObjects:@"11",@"22",@"33", nil]; NSMutableArray *secondRow = [[NSMutableArray alloc] initWithObjects:@"44",@"55",@"66", nil]; NSMutableArray *my2DArray = [[NSMutableArray alloc] initWithObjects:firstRow,secondRow, nil]; //插入一个数据 [[my2DArray objectAtIndex:0] insertObject:@"iOS" atIndex:3]; NSLog(@"%@",my2DArray); [[my2DArray objectAtIndex:1] insertObject:@"OC" atIndex:0]; NSLog(@"%@",my2DArray); } return 0; }打印结果如下:
。
【使用for-in快速遍历二维数组】
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //定义2个一维数组; NSArray *firstRow = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil]; NSArray *secondRow = [[NSArray alloc] initWithObjects:@"4",@"5",@"6", nil]; //使用一维数组来初始化二维数组; NSArray *my2DArray = [[NSArray alloc] initWithObjects:firstRow,secondRow, nil]; //遍历二维数组; for (int i = 0; i < [my2DArray count]; i++) { for (int j = 0; j < firstRow.count; j++) { NSLog(@"二维数组元素:%@",[[my2DArray objectAtIndex:i] objectAtIndex :j]); } } //打印某个维度的一维数组 NSLog(@"一维数组:%@",[my2DArray objectAtIndex:0]); //使用for-in快速遍历二维数组中的一维数组 for (NSArray *arr in my2DArray) { NSLog(@"二维数组中的一维数组:%@",arr); } //使用for-in快速遍历二维数组中的每一个元素 for (NSArray *arr in my2DArray) { for (NSString *str in arr) { NSLog(@"for-in结果:%@",str); } } } return 0; }
打印结果:
。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: 第一个PHP程序——Hello World