OC数组相关的基础操作

NSArray * arr1 = @[@"1 2 3",@"345",[NSNull null],@"789"];

NSArray * arr3 = [[NSArray alloc]initWithArray:arr1];

NSLog(@"arr3 == %@",arr3);

//将c数组转换为oc数组对象

//oc不允许将nil插入到数组中,因为nil作用是数组的结束标记

NSString * carr[10] = {@"123",@"456",@"789"};

NSArray * arr4 = [[NSArray alloc]initWithObjects:carr count:2];

NSLog(@"arr4 == %@",arr4);

//获取元素个数

NSUInteger count = [arr4 count];

NSLog(@"count = %ld",count);

//获取指定下标元素

NSLog(@"arr3.1 == %@",[arr3 objectAtIndex:1]);

//获取第一个元素或者最后一个元素

id arrf = [arr3 firstObject];

id arrl = [arr3 lastObject];

NSLog(@"%@ %@",arrf,arrl);

//获取子集

NSArray *arr2 = @[@"111", @"222", @"333", @"444", @"555", @"666"];

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

NSArray *sub1 = [arr2 subarrayWithRange:NSMakeRange(1, 3)];

NSLog(@"sub1 = %@", sub1);

//获取任意元素作为子集

//1.列出所需要元素的下标清单

NSMutableIndexSet *indexs = [NSMutableIndexSet indexSet];

//1-1.将要获取元素的下标写入清单

for (NSInteger i = 0; i < [arr2 count]; i++)

{

if (i % 2 != 1)

{

[indexs addIndex:i];

}

}

//2.将清单交给数组

//id obj =[arr2 objectAtIndex:0]; //获取单个元素,返回单个元素

NSArray *sub2 = [arr2 objectsAtIndexes:indexs];//获取下标清单里的所有元素,返回一个元素集合(数组)

NSLog(@"sub2 = %@", sub2);

//获取最长字符串和最小字符串

//快速枚举

NSArray *arr5 = @[@"123456789", @"22222", @"333", @"errr", @"444", @"5", @"666"];

NSInteger maxLength = [arr5[0] length];

NSInteger minLength = [arr5[0] length];

NSString *maxString = nil;

NSString *minString = nil;

for (id obj in arr5) {

if (maxLength <= [obj length]) {

maxLength = [obj length];

maxString = obj;

}

if (minLength >= [obj length]) {

minLength = [obj length];

minString = obj;

}

}

NSLog(@"maxString = %@, minString = %@",maxString,minString);

//创建可变数组对象

NSMutableArray *muarr1 = [[NSMutableArray alloc] initWithCapacity:30];

NSMutableArray *muarr2 = [NSMutableArray arrayWithCapacity:30];

//添加元素

[muarr1 addObject:@"123"];

[muarr1 addObject:@"456"];

[muarr2 addObjectsFromArray:muarr1];

[muarr2 addObject:@"789"];

[muarr2 addObject:@"45"];

[muarr2 addObject:@"789"];

[muarr2 addObject:@"789"];

NSLog(@"muarr1 = %@",muarr1);

NSLog(@"muarr2 = %@",muarr2);

//插入元素

//插入下标的范围: 0<=index<=count

[muarr1 insertObject:@"aaa" atIndex:1];

[muarr1 insertObject:@"bbb" atIndex:[muarr1 count]];

NSLog(@"muarr1 = %@",muarr1);

NSLog(@"删除前的muarr2 == %@",muarr2);

//[muarr2 removeAllObjects];//删除所有元素

//[muarr2 removeLastObject];//删除最后一个元素

//[muarr2 removeObject:@"789"];//删除指定对象,会将所有对象删除

//[muarr2 removeObject:@"789" inRange:NSMakeRange(1, 2)];//删除指定范围中的指定对象

//[muarr2 removeObjectAtIndex:0];//删除指定下标的元素

//[muarr2 removeObjectsInRange:NSMakeRange(2, 2)];//删除指定范围中得元素

//[muarr2 removeObjectIdenticalTo:@"789"];

//[muarr2 removeObjectIdenticalTo:@"789" inRange:NSMakeRange(2, 1)];

//如果要删除不连续的元素,则先把要删除的元素放在一个清单中,然后再删除该清单

//比如要删下标为偶数的

NSMutableIndexSet *indexs2 = [NSMutableIndexSet indexSet];

for (int i = 0; i < [muarr2 count]; i++) {

if (i % 2 == 0) {

[indexs2 addIndex:i];

}

}

//删除清单中得元素

// [muarr2 removeObjectsAtIndexes:indexs2];

//替换指定下标的值

//[muarr2 replaceObjectAtIndex:2 withObject:@"aaa"];

//NSArray *arr = @[@"qqqq",@"www",@"ee"];//注意数组越界

//[muarr2 replaceObjectsAtIndexes:indexs2 withObjects:arr];

//[muarr2 replaceObjectsInRange:NSMakeRange(1, 3) withObjectsFromArray:arr];// qq, qq, ww, ee, ee,在指定范围内,修改数组中得内容。

//交换数组中得内容

// [muarr2 exchangeObjectAtIndex:1 withObjectAtIndex:3];

//用oc对c语言中得数组进行排序

for (int i = 0; i < [muarr2 count]; ++i) {

for (int j = i + 1; j < [muarr2 count]; ++j) {

if ([muarr2[i] length] < [muarr2[j] length]) {

[muarr2 exchangeObjectAtIndex:i withObjectAtIndex:j];

}

}

}

NSLog(@"删除后的muarr2 == %@",muarr2);


排序

    NSArray * arr1 = @[@"1",@"3",@"2",@"9",@"5",@"4"];

    NSMutableArray * arr = [[NSMutableArray alloc]initWithArray:arr1];

   for (int i = 0; i<[arr count]; ++i) {

        for (int j = i + 1; j<[arr count]; ++j) {

            if ([arr[i] floatValue] > [arr[j] floatValue]) {

                [arr exchangeObjectAtIndex:i withObjectAtIndex:j];

            }

        }

    }

 //  NSMutableIndexSet *indexs = [NSMutableIndexSet indexSet];

//    NSInteger num = [arr count]/2;

//    [indexs addIndex:num];

//    NSArray * sub = [arr objectsAtIndexes:indexs];

//    NSLog(@"%@",sub[0]);

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

推荐阅读更多精彩内容