黑马程序员——NSArray与NSMutableArray的基本操作总结

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

NSArray:不可变数组

不可变:数组一旦创建完成后,数组成员不能够被修改,数组成员不能添加和删除

注:oc中的数组成员放在小括号里(),nil是数组结束标志

1:数组的创建

常用方法:NSArray *array = @[成员列表];//只能用在不可变数组中(无需写nil)

1:对象方法

- (id)initWithObjects:(id)firstObj, ... ;

- (id)initWithArray:(NSArray *)array;//由于内存管理技术,导致initWithArray的数组,与原数组的地址不同

2:类方法

+ (id)arrayWithObjects:(id)firstObj, ... ;

+ (id)arrayWithArray:(NSArray *)array;

数组成员初始化的时候放在[]里,打印出来的时候放在()
    NSArray *array = @[@"bei", @"jing", @"huan", @"huan", @"ying", @"nin"];
#pragma mark 对象方法创建数组
    //注意:nil是oc数组结束标志,如果nil在数组中间,nil后面的元素无法打印
    NSArray *array1 = [[NSArray alloc] initWithObjects:@"bei", @"jing", @"huan", @"huan", @"ying", @"nin", nil];//最常用
    NSArray *array2 = [[NSArray alloc] initWithArray:array];//用其他数组初始化当前数组
#pragma mark 类方法创建数组
    NSArray *array3 = [NSArray arrayWithObjects:@"bei", @"jing", @"huan", @"huan", @"ying", @"nin", nil];//最常用
    NSArray *array4 = [NSArray arrayWithArray:array];
    NSLog(@"%@", array);
    NSLog(@"%@", array1);
    NSLog(@"%@", array2);
    NSLog(@"%@", array3);
    NSLog(@"%@", array4);
}

2:获取数组元素的个数

- (NSUInteger)count;//返回数组中元素个数

3:通过索引获取相应的元素//返回什么类型元素就要用什么类型对象接收//下标越界会报错

- (id)objectAtIndex:(NSUInteger)index;

    NSArray *array = [NSArray arrayWithObjects:@"bei", @"jing", @"huan", @"ying", @"nin", nil];
    NSLog(@"%lu", [array count]);
}
//数组成员的引用
    NSArray *array = [NSArray arrayWithObjects:@"bei", @"jing", @"huan", @"ying", @"nin", nil];
    NSLog(@"%@", [array objectAtIndex:1]);
    NSLog(@"%@", array[1]);

4:数组成员的遍历(traverse

1):for

2):快速枚举法for-in

//第一种数组成员的类型全部相同且已知(例如:类型全为NSString)

//第二种数组成员的类型不相同,且类型不已知(用id)

5:通过对象地址获取在数组中的索引值

- (NSUInteger)indexOfObject:(id)anObject;

6:判断数组中是否包含某个元素

- (BOOL)containsObject:(id)anObject;

//判断数组中是否包含某个元素
    NSArray *array = [NSArray arrayWithObjects:@"bei", @"jing", @"huan", @"ying", @"nin", nil];
    BOOL bl = [array containsObject:@"huan"];
    if (bl) {
        NSLog(@"包含该元素");
    } else {
        NSLog(@"不包含该元素");
    }

7:获取数组的最后一个元素

- (id)lastObject;

    NSArray *array = [NSArray arrayWithObjects:@"bei", @"jing", @"huan", @"ying", @"nin", nil];
    NSLog(@"%@", [array lastObject]);
    NSLog(@"%@", [array objectAtIndex:[array count]-1]);

8:数组成员用指定字符串进行分割//将字符串拆成数组对象(字符串的方法,将字符串进行切割成数组,分割成的每个部分是数组成员)

- (NSArray *)componentsSeparatedByString:(NSString *)separator;

9:把数组元素内容按照字符串separator进行拼接//将数组成员拼成字符串

- (NSString *)componentsJoinedByString:(NSString *)separator;

    NSString *string = @"wo$men$dou$hen$shuai";
    //- (NSArray *)componentsSeparatedByString:(NSString *)separator;
    //作用:字符串的切割,将字符串切成数组(字符串方法)
    NSArray *arrayFromString = [string componentsSeparatedByString:@"$"];
    NSLog(@"%@", arrayFromString);
    //- (NSString *)componentsJoinedByString:(NSString *)separator;
    //作用:将数组元素拼成字符串(数组方法)
    NSString *stringFromArray = [arrayFromString componentsJoinedByString:@" "];
    NSLog(@"%@", stringFromArray);

NSMutableArray:可变数组,继承自NSArray

可变数组:数组创建后,数组成员仍然可以修改,添加和删除

初始化可变数组

        NSMutableArray *mutable = [[NSMutableArray alloc] initWithCapacity:0];
        NSMutableArray *mutable1 = [NSMutableArray arrayWithCapacity:0];

1:增加元素

1):在数组末尾追加(插入)元素

- (void)addObject:(id)anObject;

2):在数组末尾追加(插入)一个数组

- (void)addObjectsFromArray:(NSArray *)otherArray;

3):指定索引位置处插入元素

- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;

    NSArray *array = [NSArray arrayWithObjects:@"huan", @"ying", @"nin", nil];
    NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:0];//创建空数组
    //- (void)addObject:(id)anObject;
    //作用:在数组末尾添加元素
    [mutableArray addObject:@"bei"];
    [mutableArray addObject:@"jing"];
    [mutableArray addObject:@"huan"];
    [mutableArray addObject:@"ying"];
    [mutableArray addObject:@"nin"];
    NSLog(@"%@", mutableArray);
    //- (void)addObjectsFromArray:(NSArray *)otherArray;
    //作用:数组末尾添加一个数组
    [mutableArray addObjectsFromArray:array];
    NSLog(@"%@", mutableArray);
    
    [mutableArray insertObject:@"hen" atIndex:2];
    [mutableArray insertObject:@"hen" atIndex:6];
    NSLog(@"%@", mutableArray);

2:删除元素

1):删除最后一个元素

- (void)removeLastObject;

2):删除指定索引的元素

- (void)removeObjectAtIndex:(NSUInteger)index;

3):删除指定元素//有多少删除多少

- (void)removeObject:(id)anObject;

4):在一定范围内删除指定元素

- (void)removeObject:(id)anObject inRange:(NSRange)range;

5):格局一个数组删除指定的元素

- (void)removeObjectsInArray:(NSArray *)otherArray;

6):删除所有元素

- (void)removeAllObjects;

    NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:0];
    [mutableArray addObject:@"bei"];
    [mutableArray addObject:@"jing"];
    [mutableArray addObject:@"huan"];
    [mutableArray addObject:@"ying"];
    [mutableArray addObject:@"nin"];
    [mutableArray addObject:@"jing"];
#if 0
    //- (void)removeObject:(id)anObject;
    //作用:删除指定元素
    [mutableArray removeObject:@"jing"];
#endif
#if 0
    //- (void)removeObjectAtIndex:(NSUInteger)index;
    //作用:删除指定下标的元素
    [mutableArray removeObjectAtIndex:1];
#endif
#if 0
    //- (void)removeObjectsInRange:(NSRange)range;
    //作用: 删除指定范围内的元素
    NSRange range = {0, 2};
    [mutableArray removeObjectsInRange:range];
#endif
#if 0
    NSRange range = {0, 2};
    //- (void)removeObject:(id)anObject inRange:(NSRange)range;
    //作用:删除指定范围内的某个元素
    [mutableArray removeObject:@"jing" inRange:range];
#endif
    [mutableArray removeAllObjects];
    NSLog(@"%@", mutableArray);

3:替换指定索引的元素

- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

4:交换数组元素

- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;

5:排序:根据排序准则排序

- (void)sortUsingSelector:(SEL)comparator;

6:修改数组

 - (void)setArray:(NSArray *)otherArray;














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值