IOS--OC--LessonNSArray 数组

来源:互联网 发布:mysql命令行导入数据库 编辑:程序博客网 时间:2024/05/18 01:03

一 OC中的集合类型:
/*
NSArray 数组
NSDictionary 字典
NSSet 集
*/

二 数组
1.1定义: NSArray 继承于 NSObject 用来管理/存储有序的对象

ps自定义:NSArray *array3 = [[NSArray alloc]initWithObjects:@"Rose",@"Jack", nil,@"Tom",@"jer", nil];//nil 表述 数组结束    NSLog(@"%@",array3);    遍历构造器:    NSArray *array4= [NSArray arrayWithObjects:@"l",@"m",@"c",@"s", nil] ;    NSLog(@"%@",array4);

1.2 通过下标访问数组中的元素 因为数组里的对象是有序的
两种方法求字符中的对象一个是通过下标数字

ps:1NSString *str = [array4 objectAtIndex:0];    NSLog(@"%@",str);2⃣ 一个是直接第几个数字英文加 Object     NSString *str1 =  [ array4 firstObject];    NSLog(@"%@",str1);3⃣  获取数组中元素个数    NSUInteger cou = [array4 count];    NSLog(@"%lu",cou);

2.1 NSMutableArray 可变数组 给的是空间 不是数组
2.1 注意:在使用 NSMutableArray 时 先要将他设成空的

ps: NSMutableArray *array5 = [[NSMutableArray alloc]initWithCapacity:0];    NSLog(@"%@",array5);

2.2添加对象

1⃣ 逐个添加 addObject:(nsstring*)    [array5 addObject:@"尼克斯"];    [array5 addObject:@"莉莉"];    [array5 addObject:@"杰克"];     NSLog(@"%@",array5);注意 :这样打印出来只能是编码 看不出来需要遍历一下 forfor (NSUInteger i =0; i <[array5 count]; i++) {        NSLog(@"%@",[array5 objectAtIndex:i]);    }

2⃣ 一次添加很多 arrayWithObjects:

NSMutableArray *array6 = [NSMutableArray arrayWithObjects:@"小明",@"小红",@"小王",@"小张", nil];    NSLog(@"%@",array6);注意:仍需要遍历    for (NSUInteger i = 0; i <[array6 count]; i++) {        NSLog(@"%@",[array6 objectAtIndex:i]);    }

3⃣ 用一个数组 为另一个添加元素

2.3删除数组元素

11.删除指定位置的对象公式:removeObjectAtIndex    [array8 removeObjectAtIndex:1];    NSLog(@"%@",array8);//   2.删除某个对象 已知某个对象删除公式: removeObject:@“4”  (nsstring*)就是你知道的    [array8 removeObject:@"4"];    NSLog(@"%@",array8);// 删除最后一个元素 公式:removeLastObject    [array8 removeLastObject];    NSLog(@"%@",array8);//清空数组公式:removeAllObjects    [array8 removeAllObjects];    NSLog(@"%@",array8);    */

2.4 排序
1⃣
普通冒泡排序的过程:

NSMutableArray *array9 = [NSMutableArray arrayWithObjects:@"iphone",@"ipod",@"ipad",@"iwatch",@"iMac",@"iTouch", nil];// 遍历数组for (NSUInteger i = 0; i <[array9 count]; i++) {        NSLog(@"%@",[array9 objectAtIndex:i]);    }冒泡排序:for (NSUInteger i = 0; i <[ array9 count]-1; i++) {        for (NSUInteger j =0; j < [array9 count]-i-1; j++) {//     获取前一个位置的元素 和后一个相比较    NSString *firsts1 = [ array9 objectAtIndex:j];    NSString *seconds2 = [array9 objectAtIndex:j+1];//  通过比较元素大小决定是否交换//   NSOrderedDescending = 1            if ([firsts1 compare:seconds2]>1) {                [array9 exchangeObjectAtIndex:j withObjectAtIndex:j+1];//交换位置  }     for (NSString *str in array9) {                NSLog(@"%@",str );    }}    }变型:  NSArray *sortarray = [array9 sortedArrayUsingSelector:@selector(compare:)];    for (NSString *str in sortarray) {        NSLog(@"%@",str);

注意:OC 中的数组排序 @selector()选择器 ()括号内选择的是用什么方法 只能完成升序

0 0
原创粉丝点击