//NSArray的:
//增加
1.initWithObjects
//原型:
(instancetype)initWithObjects:(id)firstObj,
//初始化数组元素
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
3. arrayByAddingObject
//原型:
(NSArray*)arrayByAddingObject:(id)anObject;
//在数组后面添加另一个对象
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
array = [array arrayByAddingObject:@"gggg"];(有溢出,最好使用NSMutableArray)
//返回结果:
aaa
bbb
ccc
gggg
4.arrayByAddingObjectsFromArray
//原型:
(NSArray*)arrayByAddingObjectsFromArray:(NSArray*)otherArray;
//把两个数组拼接起来
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSArray *array2 = [[NSArray alloc] initWithObjects:@"ttt", @"ggg", @"mmm", nil];
array = [array arrayByAddingObjectsFromArray:array2];
//返回结果:
aaa
bbb
ccc
ttt
ggg
mmm
//删除
//修改
//查询
1. count
//原型:
@property (readonly) NSUInteger count;
//求数组长度.
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSLog(@"%lu", [array count]);
//返回结果:3
2. objectAtIndex
//原型:
(id)objectAtIndex:(NSUInteger)index;
//找到第index个元素.
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSLog(@"%@", [array objectAtIndex:2]);
//返回结果:ccc
5. containsObject
//原型:
(BOOL)containsObject:(id)anObject;
//查询一个数组中是否有和你要找得字符串完全相同的
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
if ([array containsObject:@"bbb"]) {
NSLog(@"yes");
}
else {
NSLog(@"no");
}
//返回结果: yes
6.indexOfObject
//原型:
(NSUInteger)indexOfObject:(id)anObject;
//返回要找的字符串对象的下标
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSLog(@"%lu", [array indexOfObject:@"bbb"]);
//返回结果: 1
7. isEqualToArray
//原型:
(BOOL)isEqualToArray:(NSArray *)otherArray;
//比较两个数组(里面所有元素对应位相同)
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSArray *array2 = [[NSArray alloc] initWithObjects:@"aaa", @"bdb", @"ccc", nil];
NSLog(@"%d", [array isEqualToArray:array2]);
//返回结果: 0
8. @property (nonatomic, readonly) id firstObject NS_AVAILABLE(10_6, 4_0);
//取出数组中第一个对象元素.
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSLog(@"%@", [array firstObject]);
//返回结果: aaa
9.@property(nonatomic, readonly) id lastObject;
//取出数组中最后一个元素的值
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSLog(@"%@", [array lastObject]);
//返回结果: ccc
10. initWithArray
//原型:
(instancetype)initWithArray:(NSArray *)array;
//用另一个数组初始化一个数组
//例如:
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSArray *nsa = [[NSArray alloc] initWithArray:array];
//可变的:
//增加
addObject
//原型:
(void)addObject:(id)anObject;
//在数组后面加一个元素.
//例如:NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
[array addObject:@"fdf"];
//返回结果:
aaa
bbb
ccc
fdf
insertObject
//原型:
(void)insertObject:(id)anObject atIndex:(NSUInteger)index;
//在某一个位置插入一个元素.
//例如:
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
[array insertObject:@"fdf" atIndex:2];
//返回结果:
aaa
bbb
fdf
ccc
//删除
removeObjectAtIndex
//原型:
(void)removeObjectAtIndex:(NSUInteger)index;
//删除某一个位置的元素
//例如:NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
[array removeObjectAtIndex:2];
//返回结果:
aaa
bbb
//修改
replaceObjectAtIndex
//原型:
(void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
//替换某一个位置的元素.
//例如:
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
[array replaceObjectAtIndex:1 withObject:@"miantang"];
//返回结果:
aaa
miantang
ccc
//NSValue
valueWithRange
int a = 10;
NSNumber *a1 = [[NSNumber alloc] initWithInt:a];
[array addObject:a1];
//float
float b = 12.0f;
NSNumber *b1 = [[NSNumber alloc] initWithFloat:b];
[array addObject:b1];
//double
double c = 22.321;
NSNumber *c1 = [[NSNumber alloc] initWithDouble:c];
[array addObject:c1];
//BOOL
BOOL d = 1;
NSNumber *d1 = [[NSNumber alloc] initWithBool:d];
[array addObject:d1];
//NSRange
NSRange e = NSMakeRange(2, 3);
NSValue *e1 = [NSValue valueWithRange:e];
[array addObject:e1];
printArray(array);
补充:
1.数组中[[NSMutableArray alloc] init];和[[NSMutableArray alloc] initWithCapacity:]的区别:
1,initWithCapacity:10并不代表里面的object数量不能大于10.也可以大于10.
2,init是在告诉程序,“我不知道要放多少object,暂且帮我初始化”。
3,如果你知道大概要放多少东西,那么最好用initWithCapacity,这个会提高程序内存运用效率。
4,如果你初始化了NSMutableDictionary,并且很长时间不会用到,建议用initWithCapacity:0。
2.去掉数组中重复的元素:
如果结果的顺序无所谓,可以用Key Value Coding:
NSArray *result = [a valueForKeypath:@"@distinctUnionOfObjects.self"];
如果希望能保持原来的顺序,可以用:
NSArray *orderedResult = [[NSOrderedSet orderedSetWithArray:a] array]