一.基本概念
OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等。
二.数组
1、NSArray,不可变数组。
2、可以存放多个对象。
3、实例化的时候以nil表示结束。
4、通过下标索引对象。
5、NSArray无法添加、删除、修改元素。
1 /* 2 1.NSArray的创建 3 */ 4 NSArray *array2 = [NSArray arrayWithObject:@"jack"]; 5 6 // nil是数组元素结束的标记 7 NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil]; 8 // [array2 count]; 9 10 //NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil]; 11 12 // 快速创建一个NSArray对象 13 NSArray *array4 = @[@"jack", @"rose", @"4324324"]; 14 15 16 /* 17 2.NSArray的元素个数 18 */ 19 NSLog(@"%ld", array3.count); 20 21 22 /* 23 3.NSArray中元素的访问 24 */ 25 NSLog(@"%@", [array3 objectAtIndex:1]); 26 27 //array3[1]; 28 NSLog(@"%@", array3[0]);
三.可变数组
1、NSMutableArray可变数组,是NSArray的子类
2、相比NSArray增加了添加、删除、修改功能
1 NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil]; 2 3 // 添加元素 4 [array addObject:[[Person alloc] init]]; 5 6 [array addObject:@"jack"]; 7 8 // 删除元素 9 //[array removeAllObjects]; 10 // 删除指定的对象 11 // [array removeObject:@"jack"]; 12 [array removeObjectAtIndex:0]; 13 14 // 错误写法 15 // [array addObject:nil]; 16 17 18 NSLog(@"%@", array); 19 20 NSLog(@"%ld", array.count);
四.字典
1、NSDictionary,不可变字典
2、存放多个键值对(key-value)
3、最后以nil结束
4、字典中的对象存储没有顺序,使用key来索引每个对象
5、NSDictionary不可以添加、删除、修改元素
1 // 通过值/键的方式来创建 2 3 NSDictionary *dic4 = [NSDictionary dictionaryWithObjectsAndKeys: 4 5 @"Jack",@"name", 6 7 @"北京",@"address", 8 9 @"[email protected]",@"e-mail",nil]; 10 11 // 类似于数组的创建方式 12 13 NSDictionary *dic5 = @{@"name":@"Jack", 14 15 @"address":@"北京", 16 17 @"e-mail":@"[email protected]"}; 18 19 // 取值:根据相应的Key取出对应的值 20 21 NSString *name = [dic1 objectForKey:@"name"];// 返回 Jack 22 23 // 返回键值对的个数 24 25 NSUInteger count = dic5.count; // 返回 4
五.可变字典
NSMutableDictionary可变字符串,是NSDictionary增加了添加、删除、修改方法
1 //创建可变字典 2 3 NSMutableDictionary *mutableDic = [NSMutableDictionary dictionary]; 4 5 NSMutableDictionary *mutableDic2 [email protected]{@"name",@"Rose",@"address",@"北京"}; //错误的写法因为右边返回的是不可变的字典 6 7 //为可变字典添加元素 8 9 [mutableDic setObject:@"Rose" forKey:@"name"]; 10 11 [mutableDic setObject:@"北京"forKey:@"address"]; 12 13 //移除 14 15 [mutableDic removeAllObjects]; 16 17 [mutableDic removeObjectForKey:@"name"]; 18 19 20 //打印 21 22 NSLog(@"%@",mutableDic);
六.集合
1、NSSet,不可变集合
2、可以存放多个对象
3、以nil表示结束
4、对象在set中存储是无序的
5、对象在set中存储是无序的
6、不可以添加、删除、修改元素
1 //创建NSSet集合: 2 3 NSSet *set = [NSSet set]; // 一旦创建为空永远为空 4 5 NSSet *set2 = [NSSet setWithObjects:@"Jack",@"Rose",@"Jim",nil]; 6 7 // 随机获取NSSet集合中的元素 8 9 NSString *str = [set2 anyObject]; 10 11 NSLog(@"%@",str);
时间: 2024-10-11 06:21:45