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

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.把数组转化为字符串拼接起来

数组转化为字符串
NSArray *array = [NSArray arrayWithObjects:@"I",@"Love",@"You", nil];
NSString *string1 = [array componentsJoinedByString:@"❤️"];
NSLog(@"string9 : %@",string1);

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

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

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

判断数组中是否存在一个指定的对象
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];

BOOL isContain = [array containsObject:@"3"];

if (isContain) {
    
    NSLog(@"\n\n包含这个元素");
    
}else{

    NSLog(@"\n\n不包含这个元素");
}

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

指定的对象返回索引下标
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil];
NSInteger index = [array indexOfObject:@"2"];
NSLog(@"包含元素的下标 = %ld",index);
返回数组中最后一个元素
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil];
NSString *lastObject = [array lastObject];
NSLog(@"最后一个元素 = %@",lastObject);
第一个元素
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil];
NSString *firstObject = [array firstObject];
NSLog(@"\n\n\n第一个元素 = %@",firstObject);

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

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

9.可变数组的插入

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

10.删除最后一个元素

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

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

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

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

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

13.批量删除元素

批量删除元素
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.替换元素

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

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

遍历数组
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.取出连续范围的元素作为子集内容

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

NSLog(@"\n\n指定范围内的元素 = \n%@", sub1);

17.交换数组中得内容

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

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

用oc对c语言中得数组进行排序
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);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,934评论 6 13
  • 生活中总有那样的朋友,在某个聚会上让你回忆一下过去的人事,也许风花雪月,也许伤痛欲绝,也许美好如昨;工作中这般感性...
    最狸的一只阅读 366评论 3 2
  • 我的使命宣言:1、永远保持积极主动的心态面对工作和生活;2、要谦虚,不要骄傲;3、天天反省;4、通过刻意练习多维度...
    衡山阅读 152评论 0 0
  • 参考文章 Vim 学习卡和提鞋的问题 学习卡 所谓 Vim 学习卡,是用 Vimscript 编写的一个 Vim ...
    刘大帅阅读 493评论 0 0