NSArray和NSMutableArray的相关总结

来源:互联网 发布:tomcat配置优化 编辑:程序博客网 时间:2024/06/13 05:39

PS:根据老师课程总结模板,记录下来方便以后查阅,也希望可以帮助有用到的朋友!


//OC的数组可以存储不同类型的对象,OC的数组只能存储对象

NSArray *array1 = [[NSArray alloc]initWithObjects:@”1”,@”2”,@”3”,@”4”,@”5”, nil];

//数组的长度

int count = (int) array1.count;

NSLog(@”count = %d”,count);//运行结果: count = 5

//判断数组中是否包含对应的对象

BOOL isHave = [array1 containsObject:@”2”];

if(isHave)

  NSLog(@”存在”);

Else

  NSLog(@“不存在”);//运行结果:存在

//取得数据中最后一个元素

NSString *str = [array1 lastObject];

NSLog(@”str = %@”,str);//运行结果:str= 5

//取得数据中的首个元素

str = [array1 firstObject];

NSLog(@”str = %@”,str);//运行结果:str= 1

//取出数组中下标为3的元素

str = [array1 objectAtIndex:3];

NSLog(@”%@”,str);//运算结果:str = 4

//打印元素对应的下标(如果元素不存在则打印-1值)

Int index = (int)[array1 indexOfObject:@”3”];

NSLog(@”index = %d”, index);//运行结果: index = 2

 

//数组的遍历(1.基本的for循环通过下标逐一取出查看。2.for in 快速枚举 3.枚举器(迭代器))

//1.

for(int i=0; i<array1.count; i++)

{

  NSString *str1 = [array1 objectAtIndex:i];

  NSLog(@”str1 = %@”, str1);

}//运行结果 str1 = 1 (回车换行).........str1 = 5 (回车换行)

//2(如果使用快速枚举,我们需要让数组中元素的类型保持一致)

For(NSString *str2 in array1)

{

   NSLog(@”str2 = %@”,str2);

}//运行结果 str1 = 1 (回车换行).........str1 = 5 (回车换行)

 



//可变数组NSMutableArray

Person *p1 = [[Person alloc] initWithName:@”张三”];

Person *p2 = [[Person alloc] initWithName:@”李四”];

Person *p3 = [[Person alloc] initWithName:@”王五”];

 

NSArray *personArray = [[NSArray  alloc]initWithObjects:p2,p3, nil];

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

//添加元素

[array addObject:p1];//当作一个对象来添加,如果将p1换成personArray也是当成一个整体来添加,personArray对象中再包含两个对象地址,相对于第二种多了一对括号

[array addObjectsFromArray:personArray];

NSLog(@”1.%@”,array);//运行结果:1.(“<Person: 0x100114560>”,“<Person:0x100114820>”,“<Person: 0x1001146f0>”)

//删除元素

//删除数组内所有的元素

[array removeAllObjects];

NSLog(@”2.%@”,array);//运行结果:2.()

或者

//删除最后一个元素

[array removeLastObject];

NSLog(@”3.%@”,array);//运行结果:3.(“<Person: 0x100114560>”,“<Person: 0x100114820>”)

或者

//删除指定元素

[array removeObject:p2];

NSLog(@"4.%@",array);//运行结果:4.(“<Person: 0x100114560>”,“<Person: 0x1001146f0>”)

或者

//删除指定下标的元素(注意数组元素的个数下标问题会导致崩溃)

[array removeObjectAtIndex: 1];

NSLog(@”5.%@”,array);//删除下标为1的元素

//交换元素的位置

[array exchangeObjectAtIndex:0  withObjectAtIndex:1];

NSLog(@”6.%@”,array);//交换下标为0和1的元素位置

0 0
原创粉丝点击