iOS开发之数组、字典、集合
来源:互联网 发布:mac app store更改用户 编辑:程序博客网 时间:2024/04/30 20:01
一、数组
Foundation框架中,数是有序的对象的集合。
C语言数组只能存放同种数据类型的元素。
OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等 。
也存在可变数组和不可变数组之分,可变数组是不可变数组的子类。
取值方式: 下标
(一)NSArray 不可变数组
(1)NSArray的创建
a. 快速创建一个NSArray对象
<span style="font-size:18px;">NSArray *array = @[@"1444"];</span>
b.初始化
- (id)initWithObjects:(id)firstObject,...
(2)NSArray的遍历
for循环遍历 (forin )快速遍历
(3)排序
// 对数组进行排序 NSArray *array = [[NSArray alloc] initWithObjects:@"7", @"8", @"3", @"9", nil]; // SEL类型,代表一个方法选择器 // 选择一个字符串比较的方法, 括号中写一个方法的方法名 SEL selector = @selector(compare:); NSArray *sortedArr = [array sortedArrayUsingSelector:selector];(二)可变数组NSMutableArray
注意:NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法
基本使用:
(1)初始化:
- (instancetype)initWithCapacity:(NSUInteger)numItems
+ (instancetype)arrayWithCapacity:(NSUInteger)numItems;
(2)增加对象(在数组末尾增加一个对象)
- (void)addObject:(id)anObject;(3)删除对象
删除指定索引位置的对象
- (void)removeObjectAtIndex:(NSUInteger)index;删除全部对象
- (void)removeAllObjects;
(4)更改某个位置的对象
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
二、字典(NSDictionary)
(一)NSDictionary 不可变字典
OC中的NSDictionary:根据key找到value。里面存储的东西都是键值对。
(1)创建字典
// 创建一个字典 NSDictionary *diction = [[NSDictionary alloc] initWithObjectsAndKeys:@"q", @"name", @"m", @"sex", @"22", @"age", nil];
快速创建
<span style="font-size:18px;"> NSDictionary *dic6 = @{@"name":@"天天",@"age":@"456"};</span>
注意:这种快速创建的方式只适用于不可变字典。
(2)对字典的快速枚举
NSArray *keys = [dic allKeys]; for (NSString *key in keys) { NSString *object = dic[key];// dic[key]快速访问 NSLog(@"%@,%@",key,object); }(3)从key获得Value
- (id)objectForKey:(id)aKey;
(二)可变字典NSMutableDictionary
(1)增加和修改可变字典的内容
- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
(2)删除可变字典的内容
- (void)removeObjectForKey:(id)aKey;
// 字典使用中注意的事项
(1)字典中,key是唯一个,value可以相同,
(2)字典中key一般用NSString 或者NSNumber类型,而只可以是任意类型
(3)值对象不能唯空;
三、集合(无序)
(一)NSSet 不可变集合
不能存放相同的对象,是一组单值对象的集合,内部元素是无序的。
(1)创建
// 集合 // 1. 不能重复 // 2. 没有顺序 // 3. 随便取值 // 4. 必须是对象类型 NSSet *set = [[NSSet alloc] initWithObjects:@"458", @"xiabinshan", @"1", @"3", @"5", nil];
(2)取值
// 在集合中取值 NSString *setObject = [set anyObject];
// 集合是否包含某个对象 BOOL condition = [set containsObject:@"图图图退"];
(二)可变集合NSMutableSet
(1)初始化方法
<span style="font-size:18px;"><span style="font-family:Menlo;color:#00b1ff;"><span style="font-size: 18px;"> </span></span> NSMutableSet *mutableSet = [[NSMutableSet alloc] initWithCapacity:1];// 也可以用不可变集合的赋值方法</span>
// set = [set setByAddingObjectsFromSet:mutableSet];
(2)增加对象
[mutableSet addObject:@"6"];
(3)删除对象
[mutableSet removeObject:@"8"];
0 0
- iOS开发之数组、字典、集合
- iOS开发之数组、字典、集合
- iOS开发之数组排序(数组中包括字典)
- IOS开发之字典
- 【iOS开发】 中数组、集合、字典的使用(NSArray, NSSet, NSDictionary)
- iOS——之数组 字典 枚举
- 数组,字典,集合
- OC数组字典集合
- OC--数组、字典、集合
- 字典,数组,集合区别
- 字典,集合,数组排序
- 字典、集合、数组排序
- 数组 字典 集合
- 集合(数组,字典)
- IOS 中数组、集合、字典的使用(NSArray, NSSet, NSDictionary)
- iOS字典,数组和集合创建对象的代码
- iOS OC (五) 字典NSDictionary 数组 NSArray 集合 NSSet
- iOS中的遍历(数组NSArray,字典NSDictionary,集合NSSet)
- make savedefconfig
- Android中Context详解
- Java过滤器和拦截器
- Json系列之三 让你打印完美的json格式
- 算法训练 最大最小公倍数(此题是坑)
- iOS开发之数组、字典、集合
- CodeForces 496B Secret Combination
- 内部类和外部类的访问细节
- poj1068Parencodings
- 关于ip route 线路负载均衡的一些总结
- 使用 ip route , ip rule , iptables 配置策略路由
- ORACLE 11g安装图解
- javaweb-day07-1&2(Servlet - Cookie)
- Facebook诞生11周年:那些高潮低谷