Objective-C 之 数组

一、不可变数组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]);
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值