当前位置: 首页 > 编程笔记 >

iOS中NSArray数组常用处理方式

万铭
2023-03-14
本文向大家介绍iOS中NSArray数组常用处理方式,包括了iOS中NSArray数组常用处理方式的使用技巧和注意事项,需要的朋友参考一下

1. 数组的常用处理方式

//--------------------不可变数组
//1.数组的创建
NSString *s1 = @"zhangsan";
NSString *s2 = @"lisi";
NSString *s3 = @"wangwu";
//(1)
NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil];
NSLog(@"%@",array1); //等价于 array1.descripton
//(2)使用类方法创建
NSArray *array2 = [NSArray arrayWithObjects:s1,s2,s3, nil];
//(3)创建一个数组对象,同时往里面存入一元素
NSArray *array3 = [NSArray arrayWithObject:s1];
//(4)创建一个数组,此数组中的元素来自array1
NSArray *array4 = [NSArray arrayWithArray:array1];
NSLog(@"array4 = %@",array4);
//2.通过下标取元素
NSString *str1 = [array4 objectAtIndex:0];
//3.数组元素的个数
NSUInteger count = [array4 count]; //等价于:array4.count;
//4.判断数组中的是否包含某个元素
BOOL isContains = [array4 containsObject:@"zhangsan"];
NSLog(@"isContains:%d",isContains);
//5.查找某一个对象在数组中的下标位置
NSUInteger index = [array4 indexOfObject:@"wangwu"];
if (index == NSNotFound) {
NSLog(@"Not find elemnts");
} else {
NSLog(@"index = %ld",index);
}
//6.链接数组中的字符串(前提:数组中都是字符串)
NSString *joinString = [array4 componentsJoinedByString:@","];
NSLog(@"joinString = %@",joinString);
//7.访问数组最后一个元素
NSString *lastObj = [array4 lastObject]; //array4.lastObject
NSLog(@"lsatObj = %@",lastObj);
//8.再原路的数组后面添加一个元素
NSArray *array5 = [array4 arrayByAddingObject:@"zhaolia"];
NSLog(@"array5 = %@",array5);
//取对应下标元素
int idx=4;
if (idx <array5.count) {
NSString *s = [array5 objectAtIndex:idx];
NSLog(@"s = %@",s);
}
//--------------数组的遍历
//1.普通遍历
for (int i=0; i<array5.count; i++) {
NSString *str = [array5 objectAtIndex:i];
NSLog(@"%@",str);
}
//快速遍历
for (NSString *s in array5) {
NSLog(@"%@",s);
}
//4.4之后的优化
//1.创建一个素组
NSArray *array7 = @[s1,s2,s3]; //等价于:NSArray *array7 = [NSArray arrayWithObjects:s1,s2,s3,nil];
NSLog(@"array7 = %@",array7);
NSString *str = array7[0];
NSLog(@"array[7] = %@",str);
//------------------可变数组
//初始化,设定元素个数为5,可以更改的。(继承自NSArray)
NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:5];
//想数组中添加一个元素
[mutableArray addObject:@"aaa"];
//向数组中指定下标插入元素
[mutableArray insertObject:@"ccc" atIndex:0];
NSLog(@"%@",mutableArray); //原来位置元素后移
//移除最后一个元素
[mutableArray removeLastObject];
NSLog(@"移除最后元素后:%@",mutableArray);
//移除指定元素
[mutableArray removeObject:@"aaa"];
//移除指定下标元素
[mutableArray removeObjectAtIndex:0];
//向数组中添加数组
[mutableArray addObjectsFromArray:array1];
//1.创建可变数组
NSString *t1 = @"zhangsan ";
NSString *t2 = @"lisi";
NSString *t3 = @"wangwu ";
// NSMutableArray *mArray1 = @[s1,s2,s3];//wrong.这里创建了一个不可变数组
NSMutableArray *mArray1 = [[NSMutableArray alloc] initWithObjects:s1,s2,s3, nil];
//创建数组时,开辟3个空间用于存储元素,存储超过容量,数组自动增大空间
NSMutableArray *mArray2 = [[NSMutableArray alloc] initWithCapacity:3];
NSMutableArray *mArray3 = [NSMutableArray arrayWithCapacity:3];
//2.添加元素
[mArray2 addObject:t1];
[mArray2 addObject:t2];
[mArray2 addObject:t3];
NSLog(@"mArray2= %@",mArray2);
//将mArray2 中元素添加到mArray3中
// [mArray3 addObjectsFromArray:mArray2];
//将mArray2作为二维数字添加
[mArray3 addObject:mArray2];
NSLog(@"mArray3 = %@",mArray3);
//3.插入元素
[mArray2 insertObject:@"Jack" atIndex:0];
NSLog(@"mArray2 = %@",mArray2);
//4.替换元素
[mArray2 replaceObjectAtIndex:0 withObject:@"John"];
NSLog(@"替换:%@",mArray2);
//5.互换两个元素的位置
[mArray2 exchangeObjectAtIndex:3 withObjectAtIndex:0];
NSLog(@"mArray2 = %@",mArray2);
//6.删除元素
//6.1根据下标删除
[mArray2 removeObjectAtIndex:2];
NSLog(@"mArray2 = %@",mArray2);
//6.2删除最后一个元素
[mArray2 removeLastObject];
NSLog(@"mArray2 = %@",mArray2);
//6.3删除指定的对象
//[mArray2 removeObject:@"zhangsan"];
//6.4删除所有元素
[mArray2 removeAllObjects];
NSLog(@"mArray2 = %@",mArray2);

以上所述是小编给大家介绍的iOS中NSArray数组常用处理方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 问题内容: 我需要以数组格式发送一个到服务器。如何将其转换为。这是我必须通过的样本。 所需的格式是这样的 有人有解决办法吗?提前致谢。 问题答案:

  • 本文向大家介绍PHP date函数常用时间处理方法,包括了PHP date函数常用时间处理方法的使用技巧和注意事项,需要的朋友参考一下 PHP星期几获取代码: 获取中文星期可以这样 获取指定日期是: [code] $weekarray=array("日","一","二","三","四","五","六"); echo "星期".$weekarray[date("w","2011-11-11")];

  • 问题内容: 在http://golang.org/doc/effective_go.html#arrays阅读了以下内容之后… 数组是值。将一个数组分配给另一个数组将复制所有元素。 特别是,如果将数组传递给函数,它将接收该数组的副本,而不是指向该数组的指针。 ......我希望在下面的代码是从不同的,和的是从不同的。有人可以解释一下下面的代码为什么会改组吗?我知道Go还是一门年轻的语言;也许对数组

  • 主要内容:创建一个数组,访问数组,修改数组,迭代数组,数组的长度,在数组中创建结构数组类型并没有明确定义为批处理脚本中的类型,但可以实现。 在批处理脚本中实现数组时需要注意以下几点。 数组中的每个元素都需要用命令来定义。 循环将需要遍历数组的值。 创建一个数组 一个数组是通过使用下面的命令创建的。 其中是数组的索引,是分配给数组的第一个元素的值。 另一种实现数组的方法是定义一个值列表并遍历值列表。 以下示例显示了如何实现。 示例 以上命令产生以下输出 - 访问数组 可以使用下标

  • 本文向大家介绍js数组常用方法?相关面试题,主要包含被问及js数组常用方法?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: push(),pop(),shift(),unshift(),splice(),sort(),reverse(),map()等

  • 我不知道如何使用hamcrest创建代码来检查数组内具有这些属性的数组。 (想象一下,因为它有多个具有不同数据的条目) 如果我使用这个: 它返回它确实存在,但我如何检查它找到的对象是否也具有相同的名字、姓氏和位置? 我也认为这是错误的: 我在这里理解的是,如果数组包含的mobilenum等于提供的mobillenum,并且如果数组包含名称“Allen”,它将搜索数组 我需要的是找到移动数等于“65