一、不可变数组NSArray
1.数组定义
// 创建一个空的不可变数组
NSArray *arr1 = [[NSArray alloc]init];
NSArray *arr2 = [NSArray array];
// 创建一个有一个元素的 不可变数组
NSArray *arr3 = [NSArray arrayWithObject:@"abcdefg"];
// 创建有多个元素的 不可变数组 需要用nil结尾
NSArray *arr4 = [NSArray arrayWithObjects:@"aa", @"bb", @"cc", @"dd", nil];
// 新语法
NSArray *arr5 = @[@"abcdefg"]; // 等价于arr3
NSArray *arr6 = @[@"aa", @"bb", @"cc", @"dd"]; // 等价于arr4
NSArray *arr7 = [NSArray arrayWithArray:arr2];
// 从本地文件中读取数组
NSArray *arr8 = [NSArray arrayWithContentsOfFile:@""];
// 从网络文件中读取数组
NSArray *arr9 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];
2.数组长度
NSUInteger count = arr6.count;
NSLog(@"nick count = %d", count);
3.访问数组数据
// 访问arr6中的第一个元素
NSString *str = [arr6 objectAtIndex:0];
// 遍历数组
for (int i = 0; i < arr6.count; i++) {
NSLog(@"数组中的第%d个元素:%@", i, [arr6 objectAtIndex:i]);
}
4.数组检测
// 获取对象在数组中的位置
NSUInteger index = [arr6 indexOfObject:@"cc"];
NSLog(@"index = %lu of 'cc'", (unsigned)index);
// 判断对象是否在数组中
BOOL flag = [arr6 containsObject:@"dd"];
NSLog(@"dd 在数组中吗? :%d", flag);
二、可变数组NSMutableArray
1.创建数组
NSMutableArray *mArr1 = [NSMutableArray array];
NSMutableArray *mArr2 = [NSMutableArray arrayWithObject:@"11"];
NSMutableArray *mArr3 = [NSMutableArray arrayWithObjects:@"11", @"22", @"33", @"44", nil];
NSMutableArray *mArr4 = [NSMutableArray arrayWithArray:arr2];
NSMutableArray *mArr5 = [NSMutableArray arrayWithContentsOfFile:@""];
NSMutableArray *mArr6 = [NSMutableArray arrayWithContentsOfURL:@""];
// 创建指定长度的数组 可变数组 特有的方法
NSMutableArray *mArr7 = [NSMutableArray arrayWithCapacity:10];
2.添加元素
// 添加元素
[mArr1 addObject:@"333"];
// 在指定位置增加一个元素
[mArr1 insertObject:@"11" atIndex:2];
[mArr1 insertObject:@"000" atIndex:3];
3.替换于交换
// 替换指定位置的一个元素
[mArr1 replaceObjectAtIndex:3 withObject:@"250"];
// 交换指定两个位置的元素
[mArr1 exchangeObjectAtIndex:1 withObjectAtIndex:3];
4.元素删除
// 删除指定元素
[mArr1 removeObject:@"11"];
// 删除指定下标元素
[mArr1 removeObjectAtIndex:2];
// 删除最后一个元素
[mArr1 removeLastObject];
// 删除所有元素
[mArr1 removeAllObjects];
5.快速遍历取值
// for (类型 对象 in 集合)
for (NSString @ele in mArr1) {
NSLog(@"ele = %@", ele);
}
三、数组使用实例
// 定义一个长度为10,名称为balance的int数组
int balance[10];
balance[1] = 299;
NSLog(@"nick balance[1] = %d balance[3] = %d", balance[1], balance[3]);
// nick balance[1] = 299 balance[3] = 0
// 初始化每个值
float arr2[5] = {100.0, 2.0, 3.3, 12.4, 50.0};
NSLog(@"arr2[0] = %f, arr2[3] = %f", arr2[0], arr2[3]);
// arr2[0] = 100.000000, arr2[3] = 12.400000
int arr3[10];
int i,j;
for(i = 0; i < 10; i++) {
arr3[i] = 100 + i;
}
for(j = 0; j < 10; j++) {
NSLog(@"index = %d; value = %d", j, arr3[j]);
}