iOS中的数组操作大全,赶紧收藏吧
(注意:数组中出现中文时直接NSLog(@" %@",array)输出为被转码的字符串,是正常的,内容已存储在了数组中,但要直接输出中文需要通过其他方法编码解析)
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // int arr[10] = {1,2,43}; //________________不可变数组NSArray_________________ //创建方式 NSString *s1 = @"张三"; NSString *s2 = @"小白"; NSString *s3 = @"大白"; /** <1> alloc方式,数组的最后会有一个nil,代表数组的结尾 创建了一个数组,数组中有三个元素 */ NSArray *array = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; //<2> 类方法创建 // [NSArray arrayWithObjects:s1,s2,s3, nil]; //2.创建了一个数组,此数组中的元素,来自于array NSArray *array1 = [[NSArray alloc] initWithArray:array]; // [NSArray arrayWithArray:(NSArray *)]; //3.创建一个数组,只有一个元素 // NSArray *array3 = [NSArray arrayWithObject:s1]; //_________________常用方法_____________________ //1.通过下标取元素 objectAtIndex NSArray *arr = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; NSString *s = [arr objectAtIndex:0]; //2.获取数组的元素个数 NSInteger count = [arr count]; //3等价于 arr.count //3.是否包含某个对象 if ([arr containsObject:s1]) { NSLog(@"包含张三这个元素"); } //4.通过元素获取对应的下标 NSInteger a = [arr indexOfObject:@"daisdhais"]; //如果数组中没有此元素 if (a == NSNotFound) { NSLog(@"数组中没有此元素"); } //5.获取最后一个元素 NSString *str = [arr lastObject]; //6.获取第一个元素 NSString *str1 = [arr firstObject]; //7.追加一个元素(会产生新的数组,以前的数组并没有改变) NSArray *arr2 = [arr arrayByAddingObject:@"赵6"]; // [arr arrayByAddingObjectsFromArray:<#(NSArray *)#>]; //_____________________遍历数组_____________________ //1.普通遍历 for (NSInteger i = 0; i < arr.count ; i++) { //取出对应的元素 NSString *s = [arr objectAtIndex:i]; NSLog(@"s = %@",s); } //2.快速遍历 for (NSString *s in arr) { //没有下标 NSLog(@"s = %@",s); } /** * 数组注意点: 1.数组越界 beyond bounds [0 .. 2] 2.OC数组中只能存放对象,而且不能为空 */ // [arr objectAtIndex:4]; 程序崩溃,导致软件闪退 /** * 数组的新语法 */ NSArray *arr4 = [NSArray arrayWithObjects:s1,s2,s3, nil]; //等价于上面,创建数组的新语法 NSArray *arr5 = @[s1,s2,s3]; //访问元素的新语法 NSString *string = arr5[0]; return 0; }