首页 > 代码库 > Foundation框架-集合

Foundation框架-集合

一.基本概念

OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等。

二.数组

      1、NSArray,不可变数组。

      2、可以存放多个对象。

      3、实例化的时候以nil表示结束。

      4、通过下标索引对象。

      5、NSArray无法添加、删除、修改元素。  

 1 /* 2      1.NSArray的创建 3      */ 4     NSArray *array2 = [NSArray arrayWithObject:@"jack"]; 5      6     // nil是数组元素结束的标记 7     NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil]; 8     // [array2 count]; 9     10     //NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];11     12     // 快速创建一个NSArray对象13     NSArray *array4 = @[@"jack", @"rose", @"4324324"];14     15     16     /*17      2.NSArray的元素个数18      */19     NSLog(@"%ld", array3.count);20     21     22     /*23      3.NSArray中元素的访问24      */25     NSLog(@"%@", [array3 objectAtIndex:1]);26     27     //array3[1];28     NSLog(@"%@", array3[0]);

三.可变数组

      1、NSMutableArray可变数组,是NSArray的子类

      2、相比NSArray增加了添加、删除、修改功能 

 1 NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil]; 2      3     // 添加元素 4     [array addObject:[[Person alloc] init]]; 5      6     [array addObject:@"jack"]; 7      8     // 删除元素 9     //[array removeAllObjects];10     // 删除指定的对象11     // [array removeObject:@"jack"];12     [array removeObjectAtIndex:0];13     14     // 错误写法15     // [array addObject:nil];16     17     18     NSLog(@"%@", array);19     20     NSLog(@"%ld", array.count);

四.字典

      1、NSDictionary,不可变字典

      2、存放多个键值对(key-value)

      3、最后以nil结束

      4、字典中的对象存储没有顺序,使用key来索引每个对象

      5、NSDictionary不可以添加、删除、修改元素

 1    // 通过值/键的方式来创建 2  3     NSDictionary *dic4 = [NSDictionary dictionaryWithObjectsAndKeys: 4  5                           @"Jack",@"name", 6  7                           @"北京",@"address", 8  9                           @"jack@163.com",@"e-mail",nil];10 11    // 类似于数组的创建方式12 13     NSDictionary *dic5 = @{@"name":@"Jack",14 15                            @"address":@"北京",16 17                            @"e-mail":@"jack@163.com"};18 19     // 取值:根据相应的Key取出对应的值20 21     NSString *name = [dic1 objectForKey:@"name"];// 返回 Jack22 23     // 返回键值对的个数24 25     NSUInteger count = dic5.count; // 返回 4

五.可变字典

NSMutableDictionary可变字符串,是NSDictionary增加了添加、删除、修改方法

 1    //创建可变字典 2  3     NSMutableDictionary *mutableDic = [NSMutableDictionary dictionary]; 4  5     NSMutableDictionary *mutableDic2 =@{@"name",@"Rose",@"address",@"北京"}; //错误的写法因为右边返回的是不可变的字典 6       7     //为可变字典添加元素 8  9     [mutableDic setObject:@"Rose" forKey:@"name"];10 11     [mutableDic setObject:@"北京"forKey:@"address"];12 13     //移除14 15     [mutableDic removeAllObjects];16 17     [mutableDic removeObjectForKey:@"name"];18 19      20     //打印21 22     NSLog(@"%@",mutableDic);

六.集合

       1、NSSet,不可变集合

       2、可以存放多个对象

       3、以nil表示结束

       4、对象在set中存储是无序的

       5、对象在set中存储是无序的

       6、不可以添加、删除、修改元素     

 1     //创建NSSet集合: 2       3     NSSet *set = [NSSet set]; // 一旦创建为空永远为空 4  5     NSSet *set2 = [NSSet setWithObjects:@"Jack",@"Rose",@"Jim",nil]; 6  7     // 随机获取NSSet集合中的元素 8  9     NSString *str = [set2 anyObject];10 11     NSLog(@"%@",str);

 

Foundation框架-集合