iOS中Collection遍历的四种方式

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 是反序遍历,这种方式可以选择遍历方式
        //其他同上
        
    }];

这种遍历方式可以得到collection的下标,也可以在block内对元素进行操作。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值