1.数组的创建 //注意:在OC的数组中,只能够存放对象 // NSArray *array = [NSArray arrayWithObject:12];错误 //创建字符串 NSString *str1 = @"zhangsan"; NSString *str2 = @"lisi"; NSString *str3 = @"wangwu"; //创建数组,并且设置多个元素 //注意:是以nil结尾的 NSArray *array1 = [[NSArray alloc] initWithObjects:str1,str2,str3, nil]; NSLog(@"array1:%@",array1.description); //使用对应的类方法 NSArray *array2 = [NSArray arrayWithObjects:str1,str2,str3, nil]; NSLog(@"array2:%@",array2); //创建数组的同时初始化一个元素 NSArray *array3 = [[NSArray alloc] initWithObjects:str1, nil]; NSArray *array4 = [NSArray arrayWithObject:str1]; NSLog(@"array3:%@ \n array4:%@",array3,array4); //创建数组的同时使用一个已有的数组初始化 NSArray *array5 = [[NSArray alloc] initWithArray:array2]; NSArray *array6 = [NSArray arrayWithArray:array2]; NSLog(@"array5:%@ \n array6:%@",array5,array6); 2.获取数组的相应元素 //-----------根据下标取元素--------- NSString *str = [array5 objectAtIndex:2]; 3.获取数组元素个数 NSUInteger count = array5.count; //[array5 count]; NSLog(@"count:%ld",count); 4.判断某一个元素是否在一个数组中 BOOL isContain = [array5 containsObject:@"zhaoliu"]; if (!isContain) { NSLog(@"不包含zhaoliu"); } 5.根据某一个元素获取下标 //如果有这个元素,则返回相应的下标,没有则返回NSNotFound NSInteger index = [array5 indexOfObject:@"zhaofei"]; if (index == NSNotFound) { NSLog(@"没有响应的元素"); } 6.注意两个数组的区别 //将array5中的所有元素交给array8 NSArray *array8 = [NSArray arrayWithArray:array5]; NSArray *array9 = [NSArray arrayWithObject:array5]; NSLog(@"array9:%@",array9); 7.获取数组中最前面/最后面的一个元素 NSString *firstStr = [array8 firstObject]; NSString *lastStr = [array8 lastObject]; NSLog(@"firstStr:%@ lastStr:%@",firstStr,lastStr); 8.截取数组 NSArray *array10 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil]; //截取出@"2",@"3",@"4" NSRange rg = {1,3}; NSArray *subArray = [array10 subarrayWithRange:rg]; NSLog(@"subArray:%@",subArray); 9.追加数组 //追加一个元素 // [array10 arrayByAddingObject:<#(nonnull id)#>] //在array10后面追加元素 NSArray *addArray = [array10 arrayByAddingObjectsFromArray:array1]; NSLog(@"%@",addArray); 10.数组比较 if ([array1 isEqualToArray:array2]) { NSLog(@"array1和array2相同"); } 11.判断两个数组的开头是否相同 // 1,2,4,5 3,2,1,6 NSArray *a = @[@"1",@"2",@"4",@"5"]; NSArray *a2 = @[@"30",@"20",@"10",@"60"]; NSString *sameS = [a firstObjectCommonWithArray:a2]; NSLog(@"%@",sameS); if (![array1 firstObjectCommonWithArray:array10]) { NSLog(@"第一个元素不相同"); } 12.数组遍历 //方式一: //遍历addArray //获取addArray数组的长度 NSUInteger count2 = addArray.count; for (int i=0; i<count2; i++) { //注意数组越界 //i:0.... //根据下标获取元素 // NSString *obj = [addArray objectAtIndex:i]; //等价 NSString *obj = addArray[i]; NSLog(@"obj:%@",obj); } //方式二:快速遍历 for (NSString *str in addArray) { NSLog(@"str:%@",str); } //------------数组新语法------------ // int a[] = {1,2,3,4} // a[2] //创建并且初始化数组 NSArray *array11 = @[@"1",@"2",@"3",@"4",@"5"]; NSLog(@"%@",array11); //根据制定下标获取元素 NSString *s = array11[3]; NSLog(@"s:%@",s); 二:可变数组(NSMutableArray) NSString *s1 = @"zhaoliu"; NSString *s2 = @"tianqi"; NSString *s3 = @"suba"; 1.创建可变数组 //不可以这么写 // NSMutableArray *mutArray = @[s1,s2,s3]; //创建一个容量为5的数组,可以存放超过5个元素,空间会自动增加 NSMutableArray *mutArray1 = [NSMutableArray arrayWithCapacity:5]; //注意:此时没有元素,0 NSUInteger mutCount = mutArray1.count; NSLog(@"mutCount:%ld",mutCount); NSMutableArray *mutArray2 = [[NSMutableArray alloc] initWithObjects:s1,s2,s3, nil]; 1.添加元素 // [mutArray2 addObject:str1]; // [mutArray2 addObject:str2]; // [mutArray2 addObject:str3]; //2.将一个数组中的元素添加到可辨数组中 [mutArray2 addObjectsFromArray:array1]; //3.将一个数组作为一个元素添加到数组中 [mutArray2 addObject:array1]; 2.插入元素 [mutArray2 insertObject:@"1" atIndex:0]; 3.替换元素 [mutArray2 replaceObjectAtIndex:1 withObject:@"bingge"]; //可以替换多个 // [mutArray2 replaceObjectsInRange:<#(NSRange)#> withObjectsFromArray:<#(nonnull NSArray *)#>] 4.交换 [mutArray2 exchangeObjectAtIndex:0 withObjectAtIndex:1]; 5.删除 //删除所有元素 // [mutArray2 removeAllObjects]; //删除最后一个元素 // [mutArray2 removeLastObject]; //删除指定元素 // [mutArray2 removeObject:@"bingge"]; // /删除指定下标元素 // [mutArray2 removeObjectAtIndex:1]; //删除多个元素 NSRange rg1 = {0,7}; NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange:rg1]; [mutArray2 removeObjectsAtIndexes:indexSet]; NSLog(@"mutArray2:%@",mutArray2); 6.数组元素排序 NSArray *array = @[@"agfd", @"abc", @"adf", @"aaa", @"csw", @"swa"]; NSArray *newArray = [array sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"newArray:%@",newArray);
时间: 2024-10-26 03:12:20