iOS中数组的基本操作

♠创建不可变数组(创建以后不可以增删元素,不可以改变数组长度)

NSArray* array= @[@"12",@"34",@"56"];  //数组元素为12,34,56;

 

♠创建可变数组(可以增删元素,可以修改长度)

NSMutableArray* array = [[NSMutableArray alloc] init];

 

♠在可变数组后面追加元素(不可变数组不可以追加)

[arrayaddObject:@"111"]; //array是可变数组,在其后面追加111

 

♠在数组指定下标插入元素

[arrayinsertObject:@"333" atIndex:2];   //在array第二个位置处插入元素:333

 

♠交换数组中的元素

[arrayexchangeObjectAtIndex:0 withObjectAtIndex:3]; //交换下标为0和下标为3处的元素

 

♠替换元素(把数组中的某个元素用指定元素替换)

[arrayreplaceObjectAtIndex:3 withObject:@"888"];  //把下标为3处的元素替换成:888

 

♠删除数组中最后一个元素

[arrayremoveLastObject];  //删除最后一个元素(容器还在)

 

♠删除一个指定元素

[arrayremoveObjectAtIndex:1]; //删除(移除)下标为1的元素

 

♠把一个字符串用指定的一个字符分割

NSString * str= @"yesiamsobadman";//定义给一个字符串

NSArray * temp= [str componentsSeparatedByString:@"m"]; //用”m”分割上面的字符串(同理可以用其他字符分割(分割成多个串))

 

♠把上一个分好的串用指定字符连接起来

NSString *str1 = [temp componentsJoinedByString:@" "]; //用空格把temp中的多个串连接起来

 

 

♠在数组中查找指定内容

NSUIntegerindex = [array indexOfObject:@"34"];//在数组中查找是否有”34”这个元素.用index记录下标,,返回的是(index)数组的下标.

if(index != NSNotFound)  //找到的话输出所在的位置(下标位置)

{

     NSLog(@"%lu",index);//输出下标位置(找不到的情况用else输出)

}

 

♠地址比较查找 (不太明白8.7)

NSMutableString* string = [[NSMutableString alloc] initWithString:@"56"];  //创建可变字符串

NSUIntegerindex = [array indexOfObjectIdenticalTo:string];

if(index != NSNotFound)// 找到的话输出下标

{

     NSLog(@"%lu",index);

}

else

{

     NSLog(@"not found");

}

 

♠创建通用对象指针

id p = @”哈哈”;//此时p的内容就是”哈哈”

 

♠内置类型放到数组需要封装

int a = 10;

//封装(把整型变量封装成对象,取值的时候需要解封)

 NSNumber*numA = [NSNumber numberWithInt:a];

解开封装(此时b =10)

int b = [numA intValue];

 

♠构建数组(意味着一个数组可以包含另外一个数组)

NSArray * a =[NSArray arrayWithObjects:@"1",@"2",[NSNumbernumberWithDouble:2.6],[NSNumber numberWithDouble:2.7],nil];  //在数组元素本来是1和2两个元素的数组中又加了两个double类型的数组2.6和2.7

 

♠复制一个数组

NSArray * y = [NSArray array  WithArray:a];//把a数组复制到y数组

NSArray * b = [NSArray arrayWithObject:y]; //把y数组复制到b数组(这个和上一个不一样,这个可复制的范围更广一些)

 

♠xcode4.6后新语法

NSArray * c = @[@"qwer",[NSNumber numberWithInt:5]];//在qwer数值元素后面加入数值元素5;

 

♠数组的遍历(循环)

NSInteger len = [c count]; //[c count]数组c元素的个数

for(int i = 0;i < len;i++)

{

      id p = [cobjectAtIndex:i];  //得到指定下标的数组元素(对象地址)

      NSLog(@"%@",p);

}

 

♠数组的遍历(快速枚举)

for (id p in c) {   //id是对象指针    in后面是对象集合(一直到 最后一个元素)

NSLog(@"%@",p);

}

 

♠数组的遍历(枚举器)

NSEnumerator * enumer = [a objectEnumerator];//返回数组的枚举对象

id p;

while (p = [enumer nextObject])  //到下一个对象  一直到最后一个对象

{

     NSLog(@"%@",p); //打印的是数组a(前面已经定义)里面的值

}

 

♠检测数组是否包含某个元素

BOOL is = [a containsObject:@"1"];  //检测数组a里是否包含”1”这个元素

if (is)

{

     NSLog(@"YES");//是的话输出YES

}

 [a firstObject];  //得到数组a的第一个对象(元素)

NSLog(@"%@",[a lastObject]); //输出数组a的最后一个对象(元素)

你可能感兴趣的:(ios,数组,操作,NSArray)