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
