集合遍歷

---恢復內容開始---數組

集合遍歷 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);

字典枚舉遍歷和集合枚舉遍歷 都與數組類似,只是因爲字典和數組中存儲的元素是無序的,所以沒有反向枚舉的概念!

 

---恢復內容結束---

相關文章
相關標籤/搜索