数组处理方法 API文档
来源:互联网 发布:linux idle process 编辑:程序博客网 时间:2024/06/06 17:24
数组的价值:(1)存数多个元素(2)存储元素只能是对象,对象可以是不同类型(3)数组是一个有序的集合(4)数组中的元素可以重复,而且重复的元素可以成为数组元素
NSArray 不可变数组对象
Creating an Array 利用便利构造器方法
1. arrayWithObjects:
Creates and returns an array containing the objects in the argument list.
创建并返回包含在参数列表中的对象的数组。
+ (instancetype)arrayWithObjects:(id)firstObj,,…
2. initWithObjects:
Initializes a newly allocated set with members taken from the specified list of objects.
初始化一个新分配的一套从对象的指定名单中的成员。
- (instancetype)initWithObjects:(id)firstObj, …
创建数组对象
//1.使用便利构造器
//1.arrayWithObjects 元素与元素之间用逗号间隔 输出格式 (aa,bb,cc)
//2.以nil结束 nil后面的元素都不会放入数组中
NSArray *arr1 = [NSArray arrayWithObjects:@"aa",@"bb",@"5",nil,@"cc", nil];
NSLog(@"arr1 = %@",arr1);//arr1 = (aa,bb,5)
//2.使用初始化方法
NSArray *arr2 = [[NSArray alloc] initWithObjects:@"aa",@"bb",@"5",nil,@"cc",nil];
NSLog(@"arr2 = %@",arr2);//arr2 = (aa,bb,5)
//1.arrayWithObjects 元素与元素之间用逗号间隔 输出格式 (aa,bb,cc)
//2.以nil结束 nil后面的元素都不会放入数组中
NSArray *arr1 = [NSArray arrayWithObjects:@"aa",@"bb",@"5",nil,@"cc", nil];
NSLog(@"arr1 = %@",arr1);//arr1 = (aa,bb,5)
//2.使用初始化方法
NSArray *arr2 = [[NSArray alloc] initWithObjects:@"aa",@"bb",@"5",nil,@"cc",nil];
NSLog(@"arr2 = %@",arr2);//arr2 = (aa,bb,5)
3. count
Returns the number of objects currently in the array.
返回当前阵列的对象的数量。
- (NSUInteger)count
获取元素个数
NSUInteger count = [arr2 count];
NSLog(@"count = %lu",count); //count = 3;
NSUInteger count = [arr2 count];
NSLog(@"count = %lu",count); //count = 3;
4. objectAtIndex:
Returns the object at the specified index of the set.
返回集合的指定索引处的对象。
- (id)objectAtIndex:(NSUInteger)index
5. firstObject
Returns the first object in the array.
返回的数组中的第一个对象。
- (id)firstObject
6. lastObject
Returns the last object in the ordered set.
返回的有序集合的最后一个对象。
- (id)lastObject
根据索引值获取对象
//(1)获取制定下标的元素
NSString *str = [arr2 objectAtIndex:1];
NSLog(@"str = %@",str);//str = bb;
//(2)获取数组中第一个元素 //The first object in the array. If the array is empty, returns nil. first和last方法比objectAtIndex更加安全,当数组元素为空时会返回null,而objectAtIndex会造成程序的crash.即数组下标越界.
NSString *str1 = [arr2 firstObject];
NSLog(@"str1 = %@",str1);//str1 = aa
NSString *str2 = [arr2 objectAtIndex:0];
NSLog(@"str2 = %@",str2);//str2 = aa
//(3)获取数组中最后个元素
NSString *str3 = [arr2 lastObject];
NSLog(@"str3 = %@",str3);//str3 = 5
//(1)获取制定下标的元素
NSString *str = [arr2 objectAtIndex:1];
NSLog(@"str = %@",str);//str = bb;
//(2)获取数组中第一个元素 //The first object in the array. If the array is empty, returns nil. first和last方法比objectAtIndex更加安全,当数组元素为空时会返回null,而objectAtIndex会造成程序的crash.即数组下标越界.
NSString *str1 = [arr2 firstObject];
NSLog(@"str1 = %@",str1);//str1 = aa
NSString *str2 = [arr2 objectAtIndex:0];
NSLog(@"str2 = %@",str2);//str2 = aa
//(3)获取数组中最后个元素
NSString *str3 = [arr2 lastObject];
NSLog(@"str3 = %@",str3);//str3 = 5
7.indexOfObject:
Returns the index of the specified object.
返回指定对象的索引。
- (NSUInteger)indexOfObject:(id)object
获取数组对象在数组中的索引值; Returns the lowest index whose corresponding array value is equal to a given object.数组中的元素可以重复,返回的为第一个.
NSUInteger index = [arr2 indexOfObject:@"5"];
NSLog(@"index = %lu",index);//index = 2
NSUInteger index = [arr2 indexOfObject:@"5"];
NSLog(@"index = %lu",index);//index = 2
8. containsObject:
Returns a Boolean value that indicates whether a given object is present in the set.
返回一个布尔值,表示给定的对象是否存在于集合中。
- (BOOL)containsObject:(id)anObject
判断是否包含某个对象. Returns a Boolean value that indicates whether a given object is present in the set.//返回值为bool类型.
BOOL isExist = [arr2 containsObject:@"aa"];
NSLog(@"isExist = %d",isExist);//isExist = 1
BOOL isExist = [arr2 containsObject:@"aa"];
NSLog(@"isExist = %d",isExist);//isExist = 1
9. sortedArrayUsingSelector:
Returns an array that lists the receiving array’s elements in ascending order, as determined by the comparison method specified by a given selector.
- (NSArray *)sortedArrayUsingSelector:(SEL)comparator
数组排序
NSArray *sortArr = [arr2 sortedArrayUsingSelector:@selector(compare:)];//这里传入的是比较方法
NSLog(@"sortArr = %@", sortArr);
NSArray *sortArr = [arr2 sortedArrayUsingSelector:@selector(compare:)];//这里传入的是比较方法
NSLog(@"sortArr = %@", sortArr);
10.forin
快速遍历(快速枚举)
for (int i = 0; i < [arr2 count]; i++) {
NSString *str4 = [arr2 objectAtIndex:i];
NSLog(@"%@",str4);
}
/*
for (type *object(数组元素类型 对象名字) in collection(集合即:要取元素的数组)) {
statements 输出语句
} forin 快速遍历,用于将集合中的元素遍历出来.
*/
for (NSString *str4 in arr2) {
NSLog(@"%@",str4);
}
for (int i = 0; i < [arr2 count]; i++) {
NSString *str4 = [arr2 objectAtIndex:i];
NSLog(@"%@",str4);
}
/*
for (type *object(数组元素类型 对象名字) in collection(集合即:要取元素的数组)) {
statements 输出语句
} forin 快速遍历,用于将集合中的元素遍历出来.
*/
for (NSString *str4 in arr2) {
NSLog(@"%@",str4);
}
NSMutableArray 可变的数组对象处理函数
首先创建数组对象,然后针对数组对象进行操作
//创建数组对象
NSMutableArray *arr1 = [[NSMutableArray alloc] initWithObjects:@"aa",@"bb",@"cc",@"vbvh"@"jd",@"jhsfcu",@"dfdh", nil];
NSMutableArray *arr1 = [[NSMutableArray alloc] initWithObjects:@"aa",@"bb",@"cc",@"vbvh"@"jd",@"jhsfcu",@"dfdh", nil];
1.addObject:
Inserts a given object at the end of the array.
- (void)addObject:(id)anObject
//1.添加元素
[arr1 addObject:@"Frank"];
NSLog(@"arr1 = %@",arr1);
[arr1 addObject:@"Frank"];
NSLog(@"arr1 = %@",arr1);
2.insertObject:atIndex:
Inserts a given object into the array's contents at a given index.
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index//2.插入元素 将Duck添加到aa的后面
[arr1 insertObject:@"Duck" atIndex:1];
NSLog(@"arr1 = %@",arr1);
[arr1 insertObject:@"Duck" atIndex:1];
NSLog(@"arr1 = %@",arr1);
3. removeAllObjects
Empties the array of all its elements.
- (void)removeAllObjects
4.removeObjectAtIndex:
Removes the object at index .
- (void)removeObjectAtIndex:(NSUInteger)index
//3.删除元素
//1.将Duck删除
[arr1 removeObjectAtIndex:3];
NSLog(@"arr1 = %@",arr1);
//2.删除所有元素
// [arr1 removeAllObjects];
// NSLog(@"arr1 = %@",arr1);
//1.将Duck删除
[arr1 removeObjectAtIndex:3];
NSLog(@"arr1 = %@",arr1);
//2.删除所有元素
// [arr1 removeAllObjects];
// NSLog(@"arr1 = %@",arr1);
5.replaceObjectsInRange:withObjectsFromArray:range:
Replaces the objects in the receiving array specified by one given range with the objects in another array specified by another range.
- (void)replaceObjectsInRange:(NSRange)aRange withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange
//4.替换元素
//将Frank替换成"shuaige"
[arr1 replaceObjectAtIndex:6 withObject:@"shuaige"];
NSLog(@"arr1 = %@",arr1);
//将Frank替换成"shuaige"
[arr1 replaceObjectAtIndex:6 withObject:@"shuaige"];
NSLog(@"arr1 = %@",arr1);
6.exchangeObjectAtIndex:withObjectAtIndex:
Exchanges the objects in the array at given indices.
- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2
//5.交换指定的位置
[arr1 exchangeObjectAtIndex:0 withObjectAtIndex:2];
NSLog(@"arr1 = %@",arr1);
[arr1 exchangeObjectAtIndex:0 withObjectAtIndex:2];
NSLog(@"arr1 = %@",arr1);
7.sortUsingSelector:
Sorts the array’s elements in ascending order, as determined by the comparison method specified by a given selector.
- (void)sortUsingSelector:(SEL)comparator
//6.对原数组进行排序 按照ASCII码进行排序
[arr1 sortUsingSelector:@selector(compare:)];
NSLog(@"arr1 = %@",arr1);
[arr1 sortUsingSelector:@selector(compare:)];
NSLog(@"arr1 = %@",arr1);
//7.快速遍历
for (NSString *str5 in arr1) {
NSLog(@"%@",str5);
}
//如果数组中元素类型不同,输出时使用统一的泛型 id 可代表所有的对象类型.
for (id str5 in arr1) {
NSLog(@"%@",str5);
}
for (NSString *str5 in arr1) {
NSLog(@"%@",str5);
}
//如果数组中元素类型不同,输出时使用统一的泛型 id 可代表所有的对象类型.
for (id str5 in arr1) {
NSLog(@"%@",str5);
}
数值对象 NSNumber
1.numberWithChar:
Creates and returns an NSNumber
object containing a given value, treating it as a signed char
.
+ (NSNumber *)numberWithChar:(char)value
2.charValue
Returns the receiver’s value as a char
.
- (char)charValue
//将基本数据类型转化成数值对象
//1.定义接本数据类型变量
char a = 'f';
int b = 20;
short c = 100;
long d = 1000;
float e = 12.345;
double f = 10.2222;
BOOL isTrue = YES;
//2.将基本数据类型转换成数据对象 全部转换成对应的数值 存储在堆区
//相当于中介
NSNumber *a1 = [NSNumber numberWithChar:a ];
NSNumber *a2 = [NSNumber numberWithInt:b ];
NSNumber *a3 = [NSNumber numberWithShort:c ];
NSNumber *a4 = [NSNumber numberWithLong:d ];
NSNumber *a5 = [NSNumber numberWithFloat:e ];
NSNumber *a6 = [NSNumber numberWithDouble:f ];
NSNumber *a7 = [NSNumber numberWithBool:isTrue];
NSArray *arr = [NSArray arrayWithObjects:a1,a2,a3,a4,a5,a6,a7 ,nil];
NSLog(@"%@",arr);//打印数组
//打印数值对象
NSLog(@"%@",a1);
NSLog(@"%@",a2);
NSLog(@"%@",a3);
NSLog(@"%@",a4);
NSLog(@"%@",a5);
NSLog(@"%@",a6);
NSLog(@"%@",a7);
//3.将NSNumber转换成基本数据
char b1 = [a1 charValue];
NSLog(@"%c",b1);
int b2 = [a2 intValue];
NSLog(@"%d",b2);
//4.NSNumber类型数据的比较
NSLog(@"%ld",[a1 compare:a2]);//注意对象比较对向
//1.定义接本数据类型变量
char a = 'f';
int b = 20;
short c = 100;
long d = 1000;
float e = 12.345;
double f = 10.2222;
BOOL isTrue = YES;
//2.将基本数据类型转换成数据对象 全部转换成对应的数值 存储在堆区
//相当于中介
NSNumber *a1 = [NSNumber numberWithChar:a ];
NSNumber *a2 = [NSNumber numberWithInt:b ];
NSNumber *a3 = [NSNumber numberWithShort:c ];
NSNumber *a4 = [NSNumber numberWithLong:d ];
NSNumber *a5 = [NSNumber numberWithFloat:e ];
NSNumber *a6 = [NSNumber numberWithDouble:f ];
NSNumber *a7 = [NSNumber numberWithBool:isTrue];
NSArray *arr = [NSArray arrayWithObjects:a1,a2,a3,a4,a5,a6,a7 ,nil];
NSLog(@"%@",arr);//打印数组
//打印数值对象
NSLog(@"%@",a1);
NSLog(@"%@",a2);
NSLog(@"%@",a3);
NSLog(@"%@",a4);
NSLog(@"%@",a5);
NSLog(@"%@",a6);
NSLog(@"%@",a7);
//3.将NSNumber转换成基本数据
char b1 = [a1 charValue];
NSLog(@"%c",b1);
int b2 = [a2 intValue];
NSLog(@"%d",b2);
//4.NSNumber类型数据的比较
NSLog(@"%ld",[a1 compare:a2]);//注意对象比较对向
上述具体结果如下:
2014-08-07 18:59:26.555 LessonNnumber[8367:303] (
102,
20,
100,
1000,
"12.345",
"10.2222",
1
)
2014-08-07 18:59:26.556 LessonNnumber[8367:303] 102
2014-08-07 18:59:26.557 LessonNnumber[8367:303] 20
2014-08-07 18:59:26.557 LessonNnumber[8367:303] 100
2014-08-07 18:59:26.558 LessonNnumber[8367:303] 1000
2014-08-07 18:59:26.558 LessonNnumber[8367:303] 12.345
2014-08-07 18:59:26.558 LessonNnumber[8367:303] 10.2222
2014-08-07 18:59:26.559 LessonNnumber[8367:303] 1
2014-08-07 18:59:26.559 LessonNnumber[8367:303] f
2014-08-07 18:59:26.559 LessonNnumber[8367:303] 20
2014-08-07 18:59:26.560 LessonNnumber[8367:303] 1
102,
20,
100,
1000,
"12.345",
"10.2222",
1
)
2014-08-07 18:59:26.556 LessonNnumber[8367:303] 102
2014-08-07 18:59:26.557 LessonNnumber[8367:303] 20
2014-08-07 18:59:26.557 LessonNnumber[8367:303] 100
2014-08-07 18:59:26.558 LessonNnumber[8367:303] 1000
2014-08-07 18:59:26.558 LessonNnumber[8367:303] 12.345
2014-08-07 18:59:26.558 LessonNnumber[8367:303] 10.2222
2014-08-07 18:59:26.559 LessonNnumber[8367:303] 1
2014-08-07 18:59:26.559 LessonNnumber[8367:303] f
2014-08-07 18:59:26.559 LessonNnumber[8367:303] 20
2014-08-07 18:59:26.560 LessonNnumber[8367:303] 1
0 0
- 数组处理方法 API文档
- 常用的可变字符串处理实例方法 API文档 NSMutableString
- C# 文档处理方法
- 常用的不可变的字符串处理的实例方法 API文档 NSString
- 建立更可靠的开发方法——基于官方API文档的学习尝试之异常处理
- 建立更可靠的开发方法——基于官方API文档的学习尝试之异常处理
- 看ExtJs API文档的阅读方法
- 看ExtJs API文档的阅读方法
- Java API文档类中常用方法
- iOS通过 API 文档自学方法
- python selenium api说明文档查看方法
- java API接口文档方法调用
- 处理数组的API,以及高级函数
- jQuery数组处理方法总结
- 数组相关的处理方法
- 数组排序|异常处理|方法|
- jquery处理数组的方法
- JavaScript 数组处理方法总结
- itext转PDF,富文本编辑器解决方案
- MFC类别信息保存和提取
- 查看当前设备可用内存与程序占用内存
- Android 4.2 Input Event事件处理流程<一>事情派发
- 19 广域网 WAN
- 数组处理方法 API文档
- ios输入框被键盘挡住的解决办法
- 通过samba服务器在debian/ubuntu和windows下共享目录
- 【中期检查】 搭建Android服务器并与浏览器交互总结一
- 一转倾心 OPPO N1 mini降价 OPPO N1 mini值不值得购买介
- C++位运算详解
- groupadd/groupmod/groupdel
- OC-字符串常用操作(NSString、NSMutableString)
- 用C++设计一个不能被继承的类