OC NSArray 和 NSMutableArray 常用方法的使用和实例
2015-08-08 14:41
393 查看
#import <Foundation/Foundation.h>
NSInteger intSort(id num1,
id num2, void *context);
int main(int argc,
const char * argv[]) {
//NSArray
不可变数组常用方法
NSArray *arr = [[NSArray
alloc] initWithObjects:@"a",
@"andy", @"b",
@"c", @"e",
@"f", nil];
//OC数组中nil
作为结束标志 不能插入中间
NSArray *arr1 = [NSArray
arrayWithObjects:@"wendy",
@"andy", @"standy",
@"tom", @"jarry" ,nil];
//OC数组只能存放对象
用arr1的对象初始化arr2
NSArray *arr2 = [[NSArray
alloc] initWithArray:arr1];
NSLog(@"%@", arr2);
//C数组
转化OC数组
NSString *carr[10] = {@"123",
@"456", @"789"};
NSArray *arr3 = [[NSArray
alloc] initWithObjects:carr
count:3];
NSLog(@"%@", arr3);
//返回数组中第一个该元素的下标,返回值%ld
NSLog(@"%ld", [arr
indexOfObject:@"c"]);
//返回数组范围内该元素的下标 0开始
NSRange range = {0,3};
NSLog(@"%ld", [arr
indexOfObject:@"a"
inRange:range]);
NSLog(@"%ld", [arr
indexOfObjectIdenticalTo:@"a"]);
//判断数组中该元素是否存在
返回bool值
NSLog(@"%d", [arr
containsObject:@"a"]);
//返回数组中元素个数
NSLog(@"%ld", [arr
count]);
//数组中的第一个元素
NSLog(@"%@", [arr3
firstObject]);
//数组中的最后一个元素
NSLog(@"%@", [arr3
lastObject]);
//取数组范围内连续元素赋给新的数组并返回
NSRange range1 = {0,
1};
NSLog(@"%@", [arr3
subarrayWithRange:range1]);
//返回数组中指定坐标下对应的元素
NSLog(@"%@", [arr3
objectAtIndex:1]);
NSLog(@"%@", [arr3
objectAtIndexedSubscript:1]);
//自定义初始化下标
NSIndexSet *index = [[NSIndexSet
alloc] initWithIndex:0];
//返回包含原数组中对应该下标元素的新数组
NSLog(@"%@", [arr3
objectsAtIndexes:index]);
//返回对应数组值等于给定对象的第一个下标 0
开始
NSLog(@"%ld", [arr
indexOfObject:@"c"]);
//返回对应数组值
在range下标范围内的第一个与给定值相等的值的下标
NSLog(@"%ld", [arr
indexOfObject:@"a"
inRange:range]);
//查找两数组中第一个相同的元素并返回
NSLog(@"%@", [arr
firstObjectCommonWithArray:arr1]);
//判断两数组是否相等
返回值 BOOL
NSLog(@"%d", [arr
isEqualToArray:arr1]);
//数组相加
NSLog(@"%@", [arr
arrayByAddingObject:arr1]);
//运行结果 (
// a,
// andy,
// b,
// c,
// e,
// f,
// (
// wendy,
// andy,
// standy,
// tom,
// jarry
// )
// )
//数组相加
成一个数组
NSLog(@"%@", [arr
arrayByAddingObjectsFromArray:arr1]);
//运行结果(
// a,
// andy,
// b,
// c,
// e,
// f,
// wendy,
// andy,
// standy,
// tom,
// jarry
// )
//返回包含本数组范围内元素的新数组
NSLog(@"%@", [arr
subarrayWithRange:range]);
//可变数组定义和常用方法
NSMutableArray *arr7 = [[NSMutableArray
alloc]
initWithCapacity:30];
NSMutableArray *arr8 = [NSMutableArray
arrayWithCapacity:30];
//添加元素
[arr7
addObject:@"123"];
[arr7
addObject:@"456"];
[arr7
addObject:@"qeqwe"];
[arr7
addObject:@"qeqwe"];
[arr7
addObject:@"qeqwe"];
//从其他数组拿出元素添加到本数组
[arr8 addObjectsFromArray:arr7];
[arr8
addObject:@"789"];
[arr8
addObject:@"789"];
[arr8
addObject:@"789"];
[arr8
addObject:@"123dsa"];
[arr8
addObject:@"123dsa"];
[arr8
addObject:@"123dsa"];
[arr8
addObject:@"123dsa"];
NSLog(@"arr7 = %@",arr7);
NSLog(@"arr8 = %@",arr8);
//插入元素
//插入下标的范围: 0<=index<=count
[arr7 insertObject:@"aaa"
atIndex:0];
NSLog(@"arr7 = %@",arr7);
[arr7 insertObject:@"bbb"
atIndex:[arr7 count]];
NSLog(@"arr7 = %@",arr7);
[arr8 removeLastObject];//删除最后一个元素
NSLog(@"%@", arr8);
[arr8 removeObject:@"789"];//删除指定对象,会将所有对象删除
NSLog(@"%@", arr8);
//删除指定范围中的指定对象
[arr8 removeObject:@"456"
inRange:NSMakeRange(0,
2)];
//删除指定下标的元素
[arr8 removeObjectAtIndex:0];
//删除指定范围中得元素
[arr8 removeObjectsInRange:NSMakeRange(0,
2)];
[arr8 removeAllObjects];//删除所有元素
NSLog(@"%@", arr8);
//如果要删除不连续的元素,则先把要删除的元素放在一个清单中,然后再删除该清单
//比如要删下标为偶数的 0开始
NSMutableIndexSet *indexs = [NSMutableIndexSet
indexSet];
for (int i =
0; i < [arr7 count]; i++) {
if (i % 2 ==
0) {
[indexs
addIndex:i];
}
}
//删除清单中得元素
[arr7 removeObjectsAtIndexes:indexs];
NSLog(@"%@", arr7);
//
修改数组中得内容
[arr7 replaceObjectAtIndex:1
withObject:@"aaa"];
NSLog(@"%@", arr7);
return 0;
}
NSInteger intSort(id num1,
id num2, void *context);
int main(int argc,
const char * argv[]) {
//NSArray
不可变数组常用方法
NSArray *arr = [[NSArray
alloc] initWithObjects:@"a",
@"andy", @"b",
@"c", @"e",
@"f", nil];
//OC数组中nil
作为结束标志 不能插入中间
NSArray *arr1 = [NSArray
arrayWithObjects:@"wendy",
@"andy", @"standy",
@"tom", @"jarry" ,nil];
//OC数组只能存放对象
用arr1的对象初始化arr2
NSArray *arr2 = [[NSArray
alloc] initWithArray:arr1];
NSLog(@"%@", arr2);
//C数组
转化OC数组
NSString *carr[10] = {@"123",
@"456", @"789"};
NSArray *arr3 = [[NSArray
alloc] initWithObjects:carr
count:3];
NSLog(@"%@", arr3);
//返回数组中第一个该元素的下标,返回值%ld
NSLog(@"%ld", [arr
indexOfObject:@"c"]);
//返回数组范围内该元素的下标 0开始
NSRange range = {0,3};
NSLog(@"%ld", [arr
indexOfObject:@"a"
inRange:range]);
NSLog(@"%ld", [arr
indexOfObjectIdenticalTo:@"a"]);
//判断数组中该元素是否存在
返回bool值
NSLog(@"%d", [arr
containsObject:@"a"]);
//返回数组中元素个数
NSLog(@"%ld", [arr
count]);
//数组中的第一个元素
NSLog(@"%@", [arr3
firstObject]);
//数组中的最后一个元素
NSLog(@"%@", [arr3
lastObject]);
//取数组范围内连续元素赋给新的数组并返回
NSRange range1 = {0,
1};
NSLog(@"%@", [arr3
subarrayWithRange:range1]);
//返回数组中指定坐标下对应的元素
NSLog(@"%@", [arr3
objectAtIndex:1]);
NSLog(@"%@", [arr3
objectAtIndexedSubscript:1]);
//自定义初始化下标
NSIndexSet *index = [[NSIndexSet
alloc] initWithIndex:0];
//返回包含原数组中对应该下标元素的新数组
NSLog(@"%@", [arr3
objectsAtIndexes:index]);
//返回对应数组值等于给定对象的第一个下标 0
开始
NSLog(@"%ld", [arr
indexOfObject:@"c"]);
//返回对应数组值
在range下标范围内的第一个与给定值相等的值的下标
NSLog(@"%ld", [arr
indexOfObject:@"a"
inRange:range]);
//查找两数组中第一个相同的元素并返回
NSLog(@"%@", [arr
firstObjectCommonWithArray:arr1]);
//判断两数组是否相等
返回值 BOOL
NSLog(@"%d", [arr
isEqualToArray:arr1]);
//数组相加
NSLog(@"%@", [arr
arrayByAddingObject:arr1]);
//运行结果 (
// a,
// andy,
// b,
// c,
// e,
// f,
// (
// wendy,
// andy,
// standy,
// tom,
// jarry
// )
// )
//数组相加
成一个数组
NSLog(@"%@", [arr
arrayByAddingObjectsFromArray:arr1]);
//运行结果(
// a,
// andy,
// b,
// c,
// e,
// f,
// wendy,
// andy,
// standy,
// tom,
// jarry
// )
//返回包含本数组范围内元素的新数组
NSLog(@"%@", [arr
subarrayWithRange:range]);
//可变数组定义和常用方法
NSMutableArray *arr7 = [[NSMutableArray
alloc]
initWithCapacity:30];
NSMutableArray *arr8 = [NSMutableArray
arrayWithCapacity:30];
//添加元素
[arr7
addObject:@"123"];
[arr7
addObject:@"456"];
[arr7
addObject:@"qeqwe"];
[arr7
addObject:@"qeqwe"];
[arr7
addObject:@"qeqwe"];
//从其他数组拿出元素添加到本数组
[arr8 addObjectsFromArray:arr7];
[arr8
addObject:@"789"];
[arr8
addObject:@"789"];
[arr8
addObject:@"789"];
[arr8
addObject:@"123dsa"];
[arr8
addObject:@"123dsa"];
[arr8
addObject:@"123dsa"];
[arr8
addObject:@"123dsa"];
NSLog(@"arr7 = %@",arr7);
NSLog(@"arr8 = %@",arr8);
//插入元素
//插入下标的范围: 0<=index<=count
[arr7 insertObject:@"aaa"
atIndex:0];
NSLog(@"arr7 = %@",arr7);
[arr7 insertObject:@"bbb"
atIndex:[arr7 count]];
NSLog(@"arr7 = %@",arr7);
[arr8 removeLastObject];//删除最后一个元素
NSLog(@"%@", arr8);
[arr8 removeObject:@"789"];//删除指定对象,会将所有对象删除
NSLog(@"%@", arr8);
//删除指定范围中的指定对象
[arr8 removeObject:@"456"
inRange:NSMakeRange(0,
2)];
//删除指定下标的元素
[arr8 removeObjectAtIndex:0];
//删除指定范围中得元素
[arr8 removeObjectsInRange:NSMakeRange(0,
2)];
[arr8 removeAllObjects];//删除所有元素
NSLog(@"%@", arr8);
//如果要删除不连续的元素,则先把要删除的元素放在一个清单中,然后再删除该清单
//比如要删下标为偶数的 0开始
NSMutableIndexSet *indexs = [NSMutableIndexSet
indexSet];
for (int i =
0; i < [arr7 count]; i++) {
if (i % 2 ==
0) {
[indexs
addIndex:i];
}
}
//删除清单中得元素
[arr7 removeObjectsAtIndexes:indexs];
NSLog(@"%@", arr7);
//
修改数组中得内容
[arr7 replaceObjectAtIndex:1
withObject:@"aaa"];
NSLog(@"%@", arr7);
return 0;
}
相关文章推荐
- JavaScript笔记
- CodeForces 567A Gerald is into Art
- Android:Intent传递数据的几种类型和源码实现
- QlikView一年计算,以最新的销售数据
- 基于贝叶斯决策的彩色图像中皮肤区域检测算法研究与实现
- linux下查看.so文件
- (C/C++学习笔记)操作符重载的两种方法
- HDU 2437 Jerboas (DFS + 同余剪枝,建图细节)
- hdu 1874 畅通工程续
- Codeforces Round #254 (Div. 2) SDUT2015暑假集训14级周赛2 (并查集)
- Lotus分析
- 一个资深系统管理员的O2O实践(一)
- 一个资深系统管理员的O2O实践(一)
- 一个资深系统管理员的O2O实践(一)
- android_Color.RGB 颜色之间渐变基本算法
- Ubuntu下包含2种远程桌面的方式:VINO-Server以及VNC Server
- JAVA编程思想学习笔记(二)---方法重载
- 网络编程TCP(一)
- 周赛题目
- Linux下静态编译glib