您的位置:首页 > 其它

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: