集合遍历

---恢复内容开始---数组

集合遍历 spa

集合:OC中提供的容器类,数组,字典,集合。对象

 遍历:对集合中元素依次取出的过程叫作遍历。 element

有三种方式:string

一、for循环遍历it

数组遍历io

原理:经过for循环的循环变量用做数组元素下标来获取不一样下标的元素。 for循环

循环次数就是数组元素的个数。class

NSArray *array = @[@"1", @"2",@"3", @“4"];容器

for (NSUInteger i = 0; i < array.count; i++) {

    NSString *value = [array objectAtIndex:i];

    NSLog(@“value:%@", string);

 

 

 

字典遍历 

原理:先获取字典中全部的key ,存储到数组中,遍历数组依次取出每一个key ,而后根据key从字典中取出对应的value。 字典取值要经过key取出对应的value。 循环次数等于字典的元素个数。 

NSDictionary *dictionary = @{@"key1":@"value1",@"key2":@"value2", @"key3":@"value3",@“key4":@"value4"};

NSArray *keys = [dictionary allKeys];

for (NSUInteger i = 0; i < keys.count; i++) {

    NSString *key = [keys objectAtIndex:i];

    NSString *value = [dictionary objectForKey:key];

    NSLog(@"value:%@", value);

 

集合遍历 

原理: 集合的allObject 属性先取到集合的全部元素存储到数组中,再经过for循环的循环变量用做下标来取到每一个元素。 

NSSet *set = [NSSet setWithObjects:@"1",@"2", @"3", @"4", nil];

NSArray *objects = set.allObjects;

for (NSUInteger i = 0; i < objects.count; i++) {

    NSString *value = [objects objectAtIndex:i];

    NSLog(@"value:%@", value);

}

 

 

二、NSEnumerator

 

NSEnumerator 

枚举器,遍历集合中的元素。 依附于集合类。 NSEnumerator 的nextObject法能够遍历每一个集合元 素,结束返回nil,经过与while结合使用可遍历集合中全部元素。

对可变集合进行枚举操做时,不能经过添加或删除对象这类方式来改变集合容器的元素个数。

NSArray *array = @[@"element1", @"element2", @"element3", @“element4"];
NSEnumerator *enumerator = [array objectEnumerator]; //正序的枚举器对象 

id value = nil; //存储数组中的元素
while ((value = [enumerator nextObject])) {   

   NSLog(@"%@", value);

 }

注:枚举器的nextObject法只能取出一个对象,因此须要和while循环结合把全部元素依次取出。 

 

 

 

 

 

数组反向枚举 

NSArray *array = @[@"element1", @"element2", @"element3", @“element4"];
NSEnumerator *reverse = [array reverseObjectEnumerator]; //逆序的枚举器对象 id value = nil; //存储数组中的元素 

  while ((value = [reverse nextObject])) {

      NSLog(@"%@", value1);

字典枚举遍历和集合枚举遍历 都与数组类似,只是因为字典和数组中存储的元素是无序的,所以没有反向枚举的概念!

 

---恢复内容结束---

相关文章
相关标签/搜索