OC基础:数组.字典.集

==============NSArray(不可变数组)===========

NSArray,继承自NSObject  用来管理(储存)一些有序的对象,不可变数组.

创建一个空数组

  NSArray *array1=[[NSArrayalloc]init];               //NSArray *array2=[NSArrayarray];   

nil   数组结束标志

NSArray *array3=[[NSArrayalloc]initWithObjects:@"rose",@"jack",nil,@"tom",@"jerry",nil];

//    通过下标访问数组中的元素(因为数组中的对象是有序的,下标也是从0开始)

NSString *str=[array4 objectAtIndex:2];      //获取下标为2的数组元素

NSString *str1=[array4 firstObject];         //获取第一个对象(下标就是0)

 NSString *str2=[array4lastObject];            //获取最后一个对象

 NSUInteger cou=[array4count];            //   获取数组中元素的个数

  =============== NSMutableArray(可变数组)==============

  //NSMutableArray  可变数组(空间大小可变)

创建一个可变数组

 NSMutableArray *mArray=[[NSMutableArrayalloc]initWithCapacity:0];

想数组中添加对象

[mArray addObject:@"天湖"];


NSLog(@"%@",mArray);//打印的是编码,可以通过遍历数组获取元素中的汉字

  for (NSUInteger i=0; i<[mArraycount]; i++) {

        NSLog(@"%@",[mArrayobjectAtIndex:i]);    //打印的是数组元素

    }

---------------------------------------------------------------------

用一个数组为另一个数组添加元素

NSMutableArray *array5=[NSArrayarrayWithObjects:@"1",@"2",@"3",@"4",nil];

NSMutableArray *mArray3=[[NSMutableArrayalloc]initWithCapacity:0];

//    用一个数组为另一个数组添加元素

[mArray3 addObjectsFromArray:array5];

    NSLog(@"%@",mArray3);

//在某个位置插入一个元素

    [mArray3 insertObject:@"*1*"atIndex:0];

    NSLog(@"%@",mArray3);

//删除指定位置的数组元素

[mArray3 removeObjectAtIndex:1];

//直接删除某个元素

[mArray3 removeObject:@"3"];

//   删除最后一个元素

    [mArray3 removeLastObject];

//    清空数组

    [mArray3 removeAllObjects];

交换数组元素位置

NSMutableArray *mArray4=[NSMutableArrayarrayWithObjects:@"iPhone",@"iPod",@"iwatch",@"iTouch",@"mac",nil];

[mArray4 exchangeObjectAtIndex:1withObjectAtIndex:2];

//遍历数组

//    快速枚举 (增强型for循环)

    //    OC中提供快速遍历集合的循环,使用forin遍历数组,不需要关心数组的个数.

    //    每一次循环都把当前元素的值赋值给变量,NSString *str中的str

    //    在内部添加NSLog的语句,或者其他的功能语句

for (NSString *strin mArray4) {

        NSLog(@"%@",str);

        //      [mArray4 removeObjectAtIndex:0];  //error.注意在快速枚举中,不能对数组元素做修改操作,:删除某个元素

    }

//数组排序

NSArray *sortArray=[mArray4sortedArrayUsingSelector:@selector(compare:)]; //@selector()选择器,()内写方法

    for (NSString *strin sortArray) {

        NSLog(@"%@",str);

    }

================== NSDictionary(不可变字典)=================

//NSDictionary,不可变字典,继承自NSObject

    // 字典中存储的元素都是以键值对的形式存在,key值必须是唯一,且不能重复;

    //    1.存储的元素都是无序的

    //    2.存储的是key/value(键值对)

    //    3.字典创建都是以nil结束

    //    4.value必须是对象,key一般是字符串

    //    注意:创建时,value在前,key在后,字典是无序的.(打印出来是key在前,value在后)

创建字典

 NSDictionary *dic=[[NSDictionaryalloc]initWithObjectsAndKeys:@"xiaoming",@"name",

                       @"18",@"age",

                       @"man",@"sex",nil];

//    通过key访问value

NSString *str3=[dic objectForKey:@"age"];

//    获取所有的value

NSArray *values=[dic allValues];

//     获取所有的 key

  NSArray *keys=[dicallKeys];

//    获取字典中键值对的个数

NSUInteger count=[dic count];

//遍历字典1

for (NSString *keyin dic) {//快速枚举枚举的是字典中的key

        NSLog(@"%@=%@",key,[dicobjectForKey:key]);

    }

//遍历字典2

    for (NSInteger i=0; i<count; i++) {

        NSString *key=[[dicallKeys]objectAtIndex:i];//allKeys先行获取所有key(一个数组),objectAtIndex得到每个key

        NSString *value=[dicobjectForKey:key];//通过key得到value

        NSLog(@"%@=%@",key,value);

    }

    //遍历字典3

    for (NSString * keyin [dicallKeys]) {

        NSLog(@"%@=%@",key,[dicvalueForKey:key]);

    }

=========================NSMutableDictionary(可变字典)==================


/创建一个可变字典

NSMutableDictionary *mDic=[[NSMutableDictionaryalloc]initWithDictionary:0];

//添加

  [mDic setObject:@"chengyixun"forKey:@"singer"];

  //    修改key对应的value

    [mDic setObject:@"zhouzhou""forKey:@"singer"];

  //    删除键值对

  [mDic removeObjectForKey:@"zhouzhou"];

  //清空字典

    [mDic removeAllObjects];

====================N SSet (不可变)============================

//   NSSet  继承自NSObject,不可变集合,类似于数学中的集合

    //    1.集合是无序的

    //    2.集合中的元素是唯一的(不可重复)

    //    空集合 {(   )}

    NSSet *set=[[NSSetalloc]init];

    NSSet *set1=[NSSetset];

//    可以通过把数组转换为集合来去重

  NSArray *a1=[[NSArrayalloc]initWithObjects:@"1",@"1",@"1",@"2",nil];

    NSSet *set3 = [[NSSetalloc]initWithArray:a1];

    NSLog(@"%@",set3);          //     1     2

  //访问集合中的元素

    NSArray *array10=[set3anyObject]

  //    集合中元素的个数

    NSLog(@"%lu",[set3count])

  //    判断某个元素释放存在于集合中

    NSSet *set4=[NSSetsetWithObjects:@"1",@"2",@"3",@"4",@"5",nil];

    BOOL b=[set4containsObject:@"9"];

  //    判断一个集合是否是另一个集合的子集

    NSSet *set5=[NSSetsetWithObjects:@"1",@"2",@"8",nil];

    if ([set5isSubsetOfSet:set4]) {

        NSLog(@"");

    }else{

        NSLog(@"不是");

    }

    //  判断两个集合是否相等

    if ([set5isEqualToSet:set4]) {

        NSLog(@"相等");

    }else{

        NSLog(@"不等");

    }

  //    判断两个集合是否有交集

    if ([set5intersectsSet:set4]) {

        NSLog(@"有交集");

    }else{

        NSLog(@"无交集");

    }

================= NSMutableSet (不可变)=================

创建一个可变的集

NSMutableSet *mSet=[[NSMutableSetalloc]initWithCapacity:0];

  //    添加元素

    [mSet addObject:@"macangyou"];

  //    删除元素

    [mSet removeObject:@"macangyou"];

    //    清空集合

    [mSet removeAllObjects];

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>总结<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    //    1.NSArray是有序的,NSDictionaryNSSet是无序的

    //    2.NSArray通过下标访问,NSDictionary是通过key值来访问元素,NSSet随机访问

    //    3.NSArray数组中的元素可以相同,NSDictionarykey必须唯一,NSSet元素唯一

    //    4.显示格式

    /*

     NSArray (元素1,元素2,...)

     NSDictionary{key1=value1;key2=value2;....}

     NSSet  {(元素1,元素2,...)}

     */

    //    注意:NSArrayNSDictionary经常嵌套使用



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值