不可变数组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创建出来的对象");
}
- 不可变数组NSArray和可变数组
- 不可变数组NSArray和可变数组NSMutableArray
- 数组:可变数组和不可变数组
- OC 中的数组方法(不可变数组NSArray 和 可变数组 NSMutableArray)
- 不可变数组(NSArray)与可变数组(NSMutableArray)
- 不可变数组NSArray与可变数组NSMutableArray
- 不可变数组NSArray和可变数组NSMutableArray区别和用法
- ios可变数组NSMutableArray和不可变数组NSArray的区别
- 可变数组和不可变数组
- 数组的常用方法(不可变:NSArray, 可变:NSMutableArray)
- 可变VS不可变数组
- Objective-C(十一、不可变数组NSArray,可变数组NSMutableArray)——iOS开发基础
- OC语言 集合>>不可变数组(NSArray) 与 可变数组(NSMutableArray)
- Object-C 中的可变数组和不可变数组
- OC中不可变数组和可变数组的操作方法
- iOS开发学习第十七课——NSArray(不可变数组) 和 NSMutableArray(不可变数组)
- 不可变数组转变为可变数组
- NSArray(不可变数组)、NSMutableArray(可变数组)、数组排序、NSNumber(多态:数值和对象互转)、NSValue(将结构体转换成对象)
- 在Spring中使用Quartz进行任务调度
- setup_irq与request_irq的区别
- Lua 标准库 - 操作系统处理(operating system facilities)
- linux软件包安装方式汇总
- C# WinForm中添加用户控件
- 不可变数组NSArray和可变数组
- Nouveau源码分析(零):前言、目录
- Linux温习(一)Linux的文件属性与目录配置
- HDU 4010 LCT
- 添加最少字符到数组中组合成回文
- 错误累计
- dom4j的使用
- Oracle 11g安装图文攻略
- 互联网的精髓就是实用