• OC基础:数组.字典.集 分类: ios学习 OC 2015-06-18 18:58 47人阅读 评论(0) 收藏


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

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

    创建一个空数组

     

      NSArray *array1=[[NSArray alloc]init];               //NSArray *array2=[NSArray array];   

    nil   数组结束标志

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

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

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

     

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

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

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

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

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

    创建一个可变数组

     

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

    想数组中添加对象

     

    [mArray addObject:@"天湖"];


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

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

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

        }

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

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

     

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

    NSMutableArray *mArray3=[[NSMutableArray 

    alloc]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=[mArray4 sortedArrayUsingSelector:@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=[dic allKeys];

     

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

    NSUInteger count=[dic count];

    //遍历字典1

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

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

        }

    //遍历字典2

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

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

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

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

        }

        //遍历字典3

        for (NSString * keyin [dic allKeys]) {

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

        }

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


    /创建一个可变字典

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

    //添加

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

      //    修改key对应的value

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

      //    删除键值对

      [mDic removeObjectForKey:@"zhouzhou"];

     

      //清空字典

        [mDic removeAllObjects];

    ====================NSSet(不可变)============================

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

        //    1.集合是无序的

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

     

        //    空集合 {(   )}

        NSSet *set=[[NSSet alloc]init];

        NSSet *set1=[NSSet set];

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

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

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

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

      //访问集合中的元素

        NSArray *array10=[set3 anyObject]

      //    集合中元素的个数

        NSLog(@"%lu",[set3 count])

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

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

        BOOL b=[set4 containsObject:@"9"];

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

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

        if ([set5 isSubsetOfSet:set4]) {

            NSLog(@"");

        }else{

            NSLog(@"不是");

        }

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

        if ([set5 isEqualToSet:set4]) {

            NSLog(@"相等");

        }else{

            NSLog(@"不等");

        }

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

        if ([set5 intersectsSet:set4]) {

            NSLog(@"有交集");

        }else{

            NSLog(@"无交集");

        }

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

    创建一个可变的集

     

    NSMutableSet *mSet=[[NSMutableSet alloc]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经常嵌套使用


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    filter函数和map函数
    生成器面试题
    装饰器激活生成器
    移动平均値
    send()方法的初识
    监听文件的输入
    迭代器抛出异常处理方法
    装饰器-wraps
    多个装饰器装饰一个函数
    WebView 安卓原生java与h5,js交互
  • 原文地址:https://www.cnblogs.com/shaoting/p/4619819.html
Copyright © 2020-2023  润新知