不可变数组NSArray和可变数组

来源:互联网 发布:访客网络账号密码 编辑:程序博客网 时间:2024/05/01 12:13

1、创建数组对象


  (1)实例方法创建数组对象

           //Xcode 4.6 以后允许用下述方式来创建数组;

       NSArray * array1 = @[@"one", @"two",@"three", [NSStringstringWithFormat:@"%d",1]];

        //用另外一个数组创建数组

       NSArray * array2 = [[NSArrayalloc] initWithArray:array1];

               

        //用 要保存的对象来创建数组

       NSArray * array3 = [[NSArrayalloc] initWithObjects:@"one",@"two", @"three",nil];

            

               (2)类方法创建数组对象

//用类方法创建数组

       NSArray * array4 = [NSArrayarrayWithArray:array3];

       NSString * array5 = [NSArrayarrayWithObjects:@"one",@"two", @"three",nil];

  

2、遍历数组 

  NSArray * array = @[@"one"@"two",@"three"]

        //[array count];给数组对象发送count的消息,来获取数组元素的个数

        //for 循环遍历

       for(int i =0; i < [array count]; i++){

             NSString * str = array[i];

//            NSLog(@"%@", str);

//            NSLog(@"%@", [array objectAtIndex:i]);

        }

        

        //for(指针 in需要遍历的集合){

       //

       //}

        //for  in 循环,循环一旦开始,就不能去改变集合

       for (NSString * strin array) {

           // NSLog(@"%@", str);

        }

        

       //枚举器遍历

       NSEnumerator * emu = [array objectEnumerator];

       NSString * str;

       while ((str = [emu nextObject]) != nil) {

           NSLog(@"%@", str);

        }


3、不可变数组NSArray常用方法

<1>获取数组元素个数

                            [arraycount];


   <2>通过索引获取相应的元素

                            [arrayobjectAtIndex:2];


   <3>通过对象地址获取在数组中的索引

      NSUInteger i = [arrayindexOfObject:@"one"];

    

   <4>判断数组中数组包含元素anObject

 BOOL b = [array containsObject:@"two"];

       

       <5>获取数组的最后一个元素

       [array lastObject];

   <6>把数组元素内容按照字符串进行拼接

       NSString * str1 = [array componentsJoinedByString:@"#"];

              <7>把字符串转换数组,是<7>的逆过程

//将字符串按照传入的字符进行分割,并且把分割好的字符串放进一个数组中返回

        NSString * str2 =@"yes i am a so bad man";

         NSArray * array1 = [str2 componentsSeparatedByString:@" "];

//用传入的字符串的所有字符创建一个字符集合

       NSCharacterSet * set = [NSCharacterSetcharacterSetWithCharactersInString:@" ,.*"];

       NSArray * array2 = [str2componentsSeparatedByCharactersInSet:set];


       <8>不可变数组的排序

NSArray *array1 =@[@"5",@"4",@"3",@"2",@"1"];

        //系统提供的方法 默认升序 不可变数组的排序

       NSArray *array2 = [array1sortedArrayUsingSelector:@selector(compare:)];


4、可变数组(NSMutableArray)对象进行增删改操作的方法

                  (1)【重置数组】

  [muArray3setArray:muArray];

 (2)【追加和插入元素】

//添加元素

          [muArray3 addObject:@"four"];

             //在指定位置插入元素

             [muArray3insertObject:@"five"atIndex:4];

(3)【删除元素】

//删除传入的对象

             [muArray3removeObject:@"five"];

            //删除所有元素

     [muArray3 removeAllObjects];

            //删除最后一个元素

           [muArray3 removeLastObject];

(4)【替换指定位置的元素】

//替换指定位置的元素

        [muArray3 replaceObjectAtIndex:0withObject:@"***"];

(5)【交换两个元素的位置】

//元素交换位置

         [muArray3 exchangeObjectAtIndex:0withObjectAtIndex:1];

5、可变数组的排序

(1)使用冒泡两层for循环对可变数组排序

NSMutableArray * array = [[NSMutableArrayalloc] initWithObjects:@"one",@"two", @"three",@"four", nil];

       for(int i =0; i < [array count]; i++)

        {

           for(int j =0; j < [array count] -1 - i; j++)

            {

               NSString * str1 = array[j];

               NSString * str2 = array[j+1];

               NSComparisonResult result = [str1 compare:str2];

               if(result == NSOrderedDescending)

                {

                    [array exchangeObjectAtIndex:jwithObjectAtIndex:j+1];

                }

            }

        }


(2)可变数组系统方法排序

  NSArray *array1 =@[@"5",@"4",@"3",@"2",@"1"];

//可变数组

       NSMutableArray *array2 = [NSMutableArrayarrayWithArray:array1];

        //无返回值改变数组元素的顺序

        [array2sortUsingSelector:@selector(compare:)];


数字对象

如何把基本数据类型(int char long NSInteger BOOL)存放到OC数组或者字典对象中

 NSNumber * number = [[NSNumberalloc] initWithInt:i];

           NSArray * array = [[NSArrayalloc] initWithObjects:number,nil];


6、类型判断:- (BOOL)isKindOfClass:(Class)aClass;

    Person * person = [[Personalloc]init];

       BOOL b = [personisKindOfClass:[Personclass]];

       if (b) {

            NSLog(@"小明是Person创建出来的对象");

       }else{

            NSLog(@"小明不是Person创建出来的对象");

      }


0 0
原创粉丝点击