数组的知识(可变与不可变)

简介: 数组的知识(可变与不可变)

1.数组的创建方式

不可变数组:一旦创建成功,内容不可改变
NSMutableArray *array11 = [[NSMutableArray alloc]init];
NSMutableArray *array12 = [[NSMutableArray alloc]initWithObjects:@"1",nil];
NSMutableArray *array13 = [[NSMutableArray alloc]initWithArray:@[@1,@2]];
NSMutableArray *array14 = [NSMutableArray new];
可变数组:创建成功
NSArray *array21 = [[NSArray alloc]init];
NSArray *array22 = [[NSMutableArray alloc]initWithArray:@[@1,@1]];
NSArray *array23 = [[NSArray alloc]initWithObjects:@"2",@"3", nil];
NSArray *array24 = [NSArray new];

2.获取数组中的元素个数以及访问数组元素

NSMutableArray *array = [[NSMutableArray alloc]init];
[array11 addObjectsFromArray:@[@1,@2,@3]];
NSLog(@"数组的个数=%lu",(unsigned long)array.count);
NSString *string = [array objectAtIndex:0];
NSString *string = array[0];
NSLog(@"array中的第一个元素是\n%@",string);

3.追加数组中的内容(可变的才可追加或者生成新的数组)

NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil];
NSArray *array1 = [array arrayByAddingObject:@"3"];
NSLog(@"%@",array1);


4.把数组转化为字符串拼接起来


image.png


NSArray *array = [NSArray arrayWithObjects:@"I",@"Love",@"You", nil];
NSString *string1 = [array componentsJoinedByString:@"❤️"];
NSLog(@"string9 : %@",string1);


5.把字符串转化为数组(根据特殊符来分割成数组)

image.png

NSString *string1 =@"I❤️Love❤️You";
NSArray *array = [string1 componentsSeparatedByString:@"❤️"];
NSLog(@"\n\n分割的数组=%@",array);


6. 判断数组中是否存在一个指定的对象


image.png

NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
BOOL isContain = [array containsObject:@"3"];
if (isContain) {
    NSLog(@"\n\n包含这个元素");
}else{
    NSLog(@"\n\n不包含这个元素");
}

7.根据指定的对象返回索引下标,返回数组中最后一个元素以及第一个元素


image.png


NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil];
NSInteger index = [array indexOfObject:@"2"];
NSLog(@"包含元素的下标 = %ld",index);


image.png


NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil];
NSString *lastObject = [array lastObject];
NSLog(@"最后一个元素 = %@",lastObject);


image.png


NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil];
NSString *firstObject = [array firstObject];
NSLog(@"\n\n\n第一个元素 = %@",firstObject);


8.可变数组的常用(新增元素)


image.png


NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
[mutableArray addObject:@"5"];
NSLog(@"新增后的结果 = %@",mutableArray);


9.可变数组的插入


image.png


NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
[mutableArray insertObject:@"5" atIndex:1];//  插入数组的下表
NSLog(@"\n\n\n插入数组后的结果 = %@",mutableArray);


10.删除最后一个元素

image.png


NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
[mutableArray removeLastObject];
NSLog(@"\n\n\n移除最后一个数组元素后的结果 = %@",mutableArray);


11.删除指定的元素(根据对象删除)


image.png


NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
[mutableArray removeObject:@"2"];
NSLog(@"\n\n\n移除指定元素后的结果 = %@",mutableArray);


12.删除指定位置的元素(根据下表移除)


image.png

NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
[mutableArray removeObjectAtIndex:2];
NSLog(@"\n\n\n移除指定位置元素后的结果 = %@",mutableArray);


13.批量删除元素

image.png

NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
NSArray *deleteArray = [NSArray arrayWithObjects:@"1", @"2", nil];
[mutableArray removeObjectsInArray:deleteArray];
NSLog(@"\n\n\n批量删除元素后的结果 = %@",mutableArray);


14.替换元素


image.png

NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
[mutableArray replaceObjectAtIndex:2 withObject:@"8"];
NSLog(@"\n\n\n指定替换元素后的结果 = %@",mutableArray);

15.遍历数组(两种遍历方式)


image.png

1.第一种遍历
NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
for (int index = 0; index < mutableArray.count; index++)
{
    NSLog(@"数组里第%d个元素是 : %@",index+1,mutableArray[index]);
}

2.第二种遍历

NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
[mutableArray enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
    NSLog(@"数组里面第%ld的值=%@",idx+1,obj);
}];

16.取出连续范围的元素作为子集内容


image.png


NSArray *array = @[@"111", @"222", @"333", @"444", @"555", @"666"];
//取出连续范围的元素作为子集内容
NSArray *sub1 = [array subarrayWithRange:NSMakeRange(1, 3)];
NSLog(@"\n\n指定范围内的元素 = \n%@", sub1);


17.交换数组中得内容


image.png

NSMutableArray *array = [[NSMutableArray alloc]initWithArray:@[@"111", @"222", @"333", @"444", @"555", @"666"]];
[array exchangeObjectAtIndex:1 withObjectAtIndex:3];
NSLog(@"\n\n交换元素后的数组 = \n%@", array);


18.用oc对c语言中得数组进行排序(这里仅仅对于长度排序)


image.png

NSMutableArray *array = [[NSMutableArray alloc]initWithArray:@[@"111111", @"22222", @"3333", @"444", @"55", @"6"]];
//用oc对c语言中得数组进行排序
for (int i = 0; i < [array count]; ++i) {
    for (int j = i + 1; j < [array count]; ++j) {
        if ([array[i] length] > [array[j] length]) {
            [array exchangeObjectAtIndex:i withObjectAtIndex:j];
        }
    }
}
NSLog(@"\n\n排序后的数组=\n\narr2 = \n%@",array);
目录
相关文章
|
1月前
从一个数组中拿到另一个数组中的值
从一个数组中拿到另一个数组中的值
|
2月前
|
存储 C语言 索引
怎样引用字符数组中的元素
在编程中,字符数组是一种常用的数据结构,用于存储一系列字符。引用字符数组中的元素,即访问数组中的特定位置的数据,是编程中的基本操作之一。本文将介绍如何引用字符数组中的元素,并附上相应的代码示例。
22 0
|
8月前
|
弹性计算 JavaScript 算法
常见类型-3:数组元组的方法
本实验将介绍TypeScriptvs数组元组的方法
29 0
|
2月前
|
存储 算法 C语言
引用字符数组中的元素
引用字符数组中的元素
16 1
|
8月前
|
存储 机器学习/深度学习 Java
Java数组的定义和使用(一篇带你搞定数组)
Java数组的定义和使用(一篇带你搞定数组)
193 0
|
4月前
|
编译器 C语言
【可变参数列表如何可变?】
【可变参数列表如何可变?】
|
9月前
数组与集合的转换
数组与集合的转换
32 0
|
8月前
|
弹性计算 JavaScript 编译器
常见类型-2:数组和元组
本实验将介绍TypeScript中的数组和元组类型和用法
36 0
|
9月前
|
存储
04-数组和元祖数据类型
04-数组和元祖数据类型
41 0
|
9月前
数组、字符串、集合的相互转换
数组、字符串、集合的相互转换
37 0