关闭

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

标签: ios笔记数组字典
142人阅读 评论(0) 收藏 举报
分类:

数组类,可存放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输出时,字典使用{}包围内容,数组使用()包围内容
   
 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1273次
    • 积分:100
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档