ios学习笔记(五)数组和字典

数组类,可存放OC对象,不可存放int float 的基本数据类型和CGRect这两种原始数据

数组中对象的顺序是以索引(index)标记的

数组分为可变数组和不可变数组;可变数组可进行增删改得操作,不可变数组不能进行增删该

不可变数组:

    NSArray *array  = [[NSArray alloc]initWithObjects:@"000",@"111",@"222", nil];//其所因分别为0,1,2

    //获取数组长度

    int arrayCount = [array count];

    //根据索引取值

    NSString *str = [array objectAtIndex:2];

    //str 的值为 222

    //遍历数组,取出数组中的所有元素

    for (int a = 0; a<array.count; a ++) {
        NSString *string = [array objectAtIndex:a ];
        NSLog(@"---------%@--------",string);
    }

    //简单遍历方式
    for (NSString *string2 in array) {
        NSLog(@"-----forin形式遍历------%@",string2);
    }

可变数组:

    //初始数组长度的创建方法,但是添加object时如果超过了这个长度,数组长度会增加
    NSMutableArray *MArry1 = [[NSMutableArray alloc]initWithCapacity:10];
    //初始化变量的创建方法
    NSMutableArray *MArry2 = [[NSMutableArray alloc]initWithObjects:@"000",@"111",@"222", nil];

     //增加元素单个元素
    [MArry1 addObject:@"333"];
    [MArry2 addObject:@"444"];
    //删除数组内所有对象
    [MArry1 removeAllObjects];
    //删除最后一个对象
    [MArry2 removeLastObject];
    //删除指定对象
    [MArry2 removeObject:@"111"];
    //根据索引删除对象
    [MArry2 removeObjectAtIndex:0];
    //在制定索引处插入对象
    [MArry2 insertObject:@"555" atIndex:1];
    //制定索引的对象替换
    [MArry2 replaceObjectAtIndex:1 withObject:@"666"];
    //根据索引交换两个对象的位置
    [MArry2 exchangeObjectAtIndex:0 withObjectAtIndex:1];

    //使用循环添加多个对象
    for (int i = 0; i < 10; i ++) {
        NSString *string = [NSString stringWithFormat:@"--%d--",i];
        [MArry1 addObject:string];
    }
    //遍历操作与不可变数组相同


字典分为可变字典和不可变字典,区别:是否可以进行增删改操作

与数组相比,字典主要的特点是,字典根据自己添加的键(key)来查找值(value),而不是按系统定义的索引(index)

不可变字典

    //创建字典
    NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];
    //查询字典中键值对的个数
    int count = [dic count];
    //查询所有的键
    NSArray *arrayForAllKeys = [dic allKeys];
    //查询所有的值
    NSArray *arrayForAllValues = [dic allValues];
    //根据key查询对应的value
    NSString *string = [dic objectForKey:@"key2"];

    //循环遍历
    for (int i = 0; i <arrayForAllKeys.count; i ++) {
        //获取key
        NSString *stringKey = [arrayForAllKeys objectAtIndex:i];
        //获取key对应的Value
        NSString *stringValue = [dic objectForKey:stringKey];
        NSLog(@"-------%@",stringValue);
    }


    //数组中存放int float
    int a = 1;
    float b = 2.5;
    NSNumber *aa = [NSNumber numberWithInt:a];
    NSNumber *bb = [NSNumber numberWithFloat:b];
    NSArray *array = [NSArray arrayWithObjects:aa,bb, nil];

    //以加号方法的形式创建
    NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];

可变字典

    //创建可变字典
    NSMutableDictionary *MDic = [NSMutableDictionary dictionary];
    //可变字典也可以初始化键值对创建
    NSMutableDictionary *MDic1 = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];
    //向字典中增加键值对时,若字典中该key不存在,则添加;若字典中该key已存在,则修改对应的value
    [MDic setValue:@"value" forKey:@"key0"];//增加
    [MDic1 setObject:@"value" forKey:@"key0"];//修改
    //删除指定key对应的键值对
    [MDic1 removeObjectForKey:@"key2"];
    //删除所有的键值对
    [MDic1 removeAllObjects];


    //查询遍历操作同不可变字典   
    //使用NSLog输出时,字典使用{}包围内容,数组使用()包围内容
   
 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/allenLi825/article/details/49891817
文章标签: ios 笔记 数组 字典
个人分类: iOS 笔记
上一篇ios学习笔记(四)定时器
下一篇贪吃蛇简单小游戏
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭