可变数组NSMutableArray

  //NSMutableArray 继承至 NSArray
//        NSArray * array = @[];
        //1.创建可变数组
        NSMutableArray * array = [[NSMutableArray alloc] initWithCapacity:0];

        //使用addObject 动态给数组中增加元素
        /*
        [array addObject:@"one"];
        [array addObject:@"two"];
        [array addObject:@"three"];
        [array addObject:@"one"];
         */
        NSString * str1 = @"one";
        NSString * str2 = @"two";
        NSString * str3 = @"three";

        //数组中可以存储,同一个对象多次
        [array addObject:str1];
        [array addObject:str2];
        [array addObject:str3];
        [array addObject:str1];

        //2.指定对象插入的位置
        [array insertObject:str1 atIndex:2];

        //3.删除 会通过对象,删除数组中所有的同一个地址的对象
        [array removeObject:str1];

        //4.通过索引的方式删除对象,超出了数组的count值,那么就会导致异常 index beyond bounds
        [array removeObjectAtIndex:0];

        [array addObject:str2];
        [array addObject:str3];
        [array addObject:str1];

        //5.删除数组中所有的元素
        [array removeAllObjects];

        NSLog(@"array %@",array);

        [array addObject:str2];
        [array addObject:str3];
        [array addObject:str1];

        //1.for换遍历
        for (int i = 0; i < array.count; i++)
        {
            NSString * str = [array objectAtIndex:i];

            //在遍历数组的时候,千万不要给数组中,增加,或者删除元素
//            [array removeObject:str1];

            NSLog(@"str %@",str);

        }

        //2.增强for循环
        for (NSString * str in array)
        {
//            [array removeObject:str1];
            //如果你在增强for循环中,删除元素,会直接导致异常出现
            NSLog(@"str %@",str);
        }

        //3.枚举器

        NSEnumerator * enumerator = [array objectEnumerator];
        NSString * value;
        while (value = [enumerator nextObject]) {
            //如果你在枚举器中,删除元素,会直接导致异常出现
//            [array removeObject:str1];
            NSLog(@"str %@",value);
        }

        //4.要通过遍历的方式确定删除哪个元素怎么办

        NSMutableArray * array2 = [[NSMutableArray alloc] init];
        [array2 addObject:@"1"];
        [array2 addObject:@"2"];
        [array2 addObject:@"3"];
        [array2 addObject:@"4"];
        [array2 addObject:@"5"];

        NSMutableArray * tmp = [[NSMutableArray alloc] init];

        for (NSString * str in array2)
        {
            if ([str isEqualToString:@"3"])
            {
                [tmp addObject:str];
            }
        }

        NSLog(@"array2 %@",array2);
        NSLog(@"tmp %@",tmp);

        //遍历临时数组
        for (int i = 0; i < tmp.count; i++)
        {
            NSString * str = [tmp objectAtIndex:i];

            //从原数组中删除,临时数组中存储的对象
            [array2 removeObject:str];
        }

        NSLog(@"array2 %@",array2);
时间: 2024-10-05 05:11:38

可变数组NSMutableArray的相关文章

【转】不可变数组NSArray与可变数组NSMutableArray

原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; //这样创建是没有意义的. //创建只有一个元素的数组 NSArray *array1 = [NSArray arrayWithArray:@"a"]; NSArray *array2 = [NSArray arrayWithObject:@"b"]; //使用便利构造

Snail—OC学习之可变数组NSMutableArray

可变数组NSMutableArray 继承于 NSArray  NSArray的所有方法都适用于可变数组 下面是可变数组的一些初始化方法 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //可变数组继承于不可变数组 //空的可变数组 NSMutableArray * array = [[NSMutableArray alloc] init]; //传入0

不可变数组NSArray和可变数组NSMutableArray区别和用法

下面是相关的代码实现: #import <Foundation/Foundation.h> #import "Person.h" /* NSArray :不可变数组 NSMutableArray : 可变数组 */ int main() { // @[] 只创建不可变数组NSArray /* 错误写法 NSMutableArray *array = @[@"jack", @"rose"]; [array addObject:@&quo

OC—可变数组NSMutableArray

Objective - C NSArray不可变数组和NSMutableArray可变数组

OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见名知意,不可改变的,只要创建成功之后都不能改变数组容量,元素. 创建一个不可变数组对象 //1.初始化方法(多个对象用逗号隔开,并且最后一个对象与nil之间也要有逗号) NSArray *array1 = [[NSArray alloc] initWithObjects:@"zhonger"

NSMutableArray(可变数组)(九)

1. //NSMutableArray(可变数组) //        NSMutableArray *marr2 = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3" ,nil]; NSMutableArray *marr1 = [[NSMutableArray alloc]init];//因为是可变数组,这时只需要给一个空得数组即可,所以只用init //添加 [marr1 addOb

Objective-C 数组、可变数组

数组的使用方式 下面是数组:类型NSArray 1 #import <UIKit/UIKit.h> 2 #import "AppDelegate.h" 3 4 int main(int argc, char * argv[]) { 5 6 // 通过@符号创建数组 7 NSArray *arr = @[@"Hello",@"jinpangpang"]; 8 9 // 通过工厂方法创建数组 10 NSArray *arr2 = [NSA

可变数组继承不可变数组,添、删、改、查、替换

#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]); #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //可变数组继承不可变数组 //1.创建.设定元素个数进行创

可变数组继承不可变数组

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //可变数组继承不可变数组 //1.创建  设定元素个数进行创建 NSMutableArray *mutArr=[NSMutableArray arrayWithCapacity:7]; //2.向数组中添加一个元素 NSArray *[email protected][@"MON",@