iOS中得Collection主要包括 NS(Mutable)Dictionary,NS(Mutable)Array和NS(Mutable)Set。
下面簡單介紹一下遍歷這些collection的四種方法。
1.for循環
這種是最常見的遍歷方式,幾乎所有編程語言都支持該方式
for(int i = 0; i<[arr length] ; i++){
//do something
[arr objecAtIndex:i];
}
2.快速遍歷
快速遍歷是某些特有的語言中得特性,我所知道的就是java和oc中有這種方式
<pre name="code" class="objc">NSArray * arr = [NSArray alloc] init];
for(id object in arr){
//do something on object;
}
關鍵語法 for in,這種方式可以快速的進行collection遍歷,且語法簡單。但是這種方式的缺點就是不能得到當前遍歷的下標
3.NSEnumerator
NSEnumerator和Java語言的Iterator很像,就是得到當前collection的迭代器,然後利用這個迭代器進行遍歷
NSArray * arr = [[NSArray alloc] init];
NSEnumerator * enuratorArr = [arr objectEnumerator];
id object;
while ((object = [enuratorArr nextObject])) {
//do something with object
}
NSDictionary * dic = [[NSDictionary alloc] init];
NSEnumerator * enumratorDic = [dic objectEnumerator];
NSSet * set = [[NSSet alloc] init];
NSEnumerator * enuratorSet = [set objectEnumerator];
4.enumerateKeysAndObjectsUsingBlock
最後一種遍歷方式
NSArray * arr = [[NSArray alloc] init];
[arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
//obj
//idx
//stop
}];
NSDictionary * dic = [[NSDictionary alloc] init];
[dic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
//key
//obj(value)
//stop
}];
[dic enumerateKeysAndObjectsWithOptions:NSEnumerationReverse usingBlock:^(id key, id obj, BOOL *stop) {
//NSEnumerationReverse 是反序遍歷,這種方式可以選擇遍歷方式
//其他同上
}];