设为首页 加入收藏

TOP

Objective-C中的集合类(二)
2015-01-22 20:57:16 来源: 作者: 【 】 浏览:54
Tags:Objective-C 集合
anObject atIndex : (NSUInteger) index;
?
??
//初始化NSMutableArray
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"111", @"222", @"333", nil];
?
//对指定位置的元素进行替换
[array replaceObjectAtIndex:0 withObject:@"aaa"];
?
//在相应的位置插入元素
[array insertObject:@"bbb" atIndex:1];
?
array_display(array);
?
?
? ? ? ? 运行结果:
?
2014-08-01 17:44:20.769 HelloOC[1520:303] aaa
2014-08-01 17:44:20.769 HelloOC[1520:303] bbb
2014-08-01 17:44:20.770 HelloOC[1520:303] 222
2014-08-01 17:44:20.770 HelloOC[1520:303] 333
?
?
? ? 4.数组的遍历
?
? ? ? ? 上面已经写了一种数组遍历方式,下面总结了其他的遍历方式,用枚举器(类似Java中的迭代器)和快速枚举(类似 PHP中的foreach)
?
? ? ? ? (1)枚举器(迭代器)的用法
?
? ? ? ? ? ? ? ? 要通过NSEnumerator来遍历数组首先得通过-(NSEnumerator *) objectEnumerator来得到枚举器;通过枚举其中的nextObject来获取对象
?
? ? ? ? ? ? ? ? demo:如下
?
//迭代遍历数组
//获取枚举器
NSEnumerator *enumerator = [array objectEnumerator];
//临时变量
id obj;
while (obj = [enumerator nextObject]) {
? ? NSLog(@"%@", obj);
}
? ? ? ??
?
? ? ? ? (2)快速遍历法,相当于PHP中的foreach的用法
?
?
for(id obj in array)
{
? ? NSLog(@"%@", obj);
}
?
?
?
?
? ?二、字典(Dictionary)
?
? ? ? ? 字典就像java中的Map, 里面存的是键值对,key的值是不可以重复的。字典有可改变的和不和不可改变之分
?
? ? ? ? ? ? 1.不可变字典NSDictionary
?
? ? ? ? ? ? ? ? (1)字典的创建和获取字典的值
?
?
?
?
//不可变字典的初始化
NSDictionary *dictionay = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
id value = [dictionay objectForKey:@"key1"];
NSLog(@"key1 => %@", value);
?
?
? ? ? ? ? ?代码运行结果:
?
1
2014-08-01 19:09:41.319 HelloOC[1658:303] key1 => value1
?
?
? ? ? ? ? ? (2).字典的遍历
?
? ? ? ? ? ? ? ? 字典的遍历方法是通过字典里的-(NSArray *)allKeys获取所有的key存入数组中然后通过遍历数组获取key对应的value,封装成函数如下:
?
?
//封装遍历字典的函数
void dictionary_display(id dictionay)
{
? ? NSArray *keys = [dictionay allKeys];
? ? for (id obj in keys) {
? ? ? ? NSLog(@"%@ => %@", obj, [dictionay objectForKey:obj]);
? ? }
}
?
?
? ? ? ? 2.可变字典NSMutableDictionary
?
? ? ? ? ? ? 在使用可变字典NSMutableDictionary时可以先给可变字典初始化一个空间,如果不够的话会自动增加
?
? ? ? ? ? ? 给可变字典分配初始化空间: +(id) dictionaryWithCapacity : (NSUInteger) num;
?
? ? ? ? ? ? 给可变字典添加对象:-(void) setObject(id) obj ?forKey(id) aKey;
?
? ? ? ? ? ? 根据关键字删除对象:-(void) removeObjectForKey : (id) aKey;
?
? ? ? ? ? ? 删除字典中的所有数据: -(void) removeAllObjects;
?
? ? ? ? ? ? ? ? 代码如下:
?
?
NSMutableDictionary *mulDictionary = [NSMutableDictionary dictionaryWithCapacity:3];
//添加值
[mulDictionary setObject:@"value1" forKey:@"key1"];
[mulDictionary setObject:@"value2" forKey:@"key2"];
[mulDictionary setObject:@"value3" forKey:@"key3"];
[mulDictionary setObject:@"value4" forKey:@"key4"];
//通过键删除值
[mulDictionary removeObjectForKey:@"key4"];
dictionary_display(mulDictionary);
? ? ??
?
? ? ? ? ? ? ? ? 运行结果:
?
?
2014-08-01 20:28:37.504 HelloOC[1786:303] key3 => value3
2014-08-01 20:28:37.504 HelloOC[1786:303] key1 => value1
2014-08-01 20:28:37.504 HelloOC[1786:303] key2 => value2
?
?
?
?
? ? ? ?三.Set集合
?
? ? ? ? ??Set集合类就像我们数学中的集合一样是无序和不重复的,Set中也只能存放对象,也分为可变集合NSMutableSet和不可变集合NSSet。
?
? ? ? ? ?? ? ??1.不可变集合NSSet
?
? ? ? ? ?? ? ?? ? ??(1)NSSet的初始化和其他集合类一样也有其对应的便利初始化方法和便利构造器,
?
? ? ? ? ?? ? ?? ? ?? ? ?? ? ??便利初始化方法:-(id) initWithObjects: (id) fi
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据结构C语言实现――线性链表 下一篇平衡二叉树(AVL)的实现,附可运..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: