NSDictionary&& NSMutableDictionary使用

来源:互联网 发布:淘宝退款假冒品牌 编辑:程序博客网 时间:2024/05/30 04:55

认识字典

  字典是用存储键值对的数据结构;每一个键对应一个值,在一个字典中,键是唯一的值可以重复。值才是目的,键是手段(为了可以快速的获取值)

key : value

key和value都可以是任意类型的对象,但是我们的key一般使用字符串

//数组中元素是有顺序的,字典中的元素没有顺序

字典也分为可变字典和不可变,(可变指字典的大小可变,字典的元素可变)

一、字典的初始化

******NSDictionary*******

//简单粗暴的创建一个字典

    NSDictionary * dictionary = @{@"key1":@"value1",@"key2":@"value2",@"key3":person};

    NSLog(@"%@",dictionary);

//========使用对象方法初始化一个字典==创建并初始化一个空的字典

    NSDictionary * dcit = [[NSDictionary alloc] init];

//=========使用类方法初始化一个字典==创建一个空的字典

    NSDictionary * dict4 = [NSDictionary dictionary];

//使用不同的键值对初始化一个字典

    NSDictionary * dict1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"ob1",@"key1",@"ob2",@"key2",person,@"person", nil];

//使用一个字典去初始化另外一个字典

    NSDictionary * dict2 = [[NSDictionary alloc] initWithDictionary:dict1];

//使用两个数组,把一个数组的元素作为值,另外一个数组的元素作业键,来初始化一个字典

    NSArray * values = @[@"aaa",@"bbb",@"ccc",@"aaa"];

    NSArray * keys = @[@"1",@"3",@"2",@"4"];

    //valueskeys的数组元素个数必须相等

    NSDictionary * dict3 = [[NSDictionary alloc] initWithObjects:values forKeys:keys];


*******NSMutableDictionary******

//创建一个空的可变字典

    NSMutableDictionary * mdict = [[NSMutableDictionary alloc] init];

//简单粗暴的方式创建字典是,前面是key:后面是value

    NSDictionary * dict = @{@"aaa":@"11",@"bbb":@"22"};

//使用一个字典去初始化另外一个字典

    NSMutableDictionary * mdict2 = [[NSMutableDictionary alloc] initWithDictionary:dict];

//使用两个数组,把一个数组的元素作为值,另外一个数组的元素作业键,来初始化一个字典

    NSArray * keys = @[@"a",@"b",@"c"];

    NSArray * values = @[@"aaa",@"bbb",@"ccc"];

    NSMutableDictionary * mdict3 = [[NSMutableDictionary alloc] initWithObjects:values forKeys:keys];


二、字典的常用方法

#pragma mark 键值对个数

//- NSUInteger count;

//获取字典的键值对个数

    NSUInteger count = [dict7 count];

    NSLog(@"%lu",count);

#pragma mark 通过键获取值

//- (id)objectForKey:(id)aKey;

    id value = [dict7 objectForKey:@"3"];

    NSLog(@"%@",value);

        

    id value2 = dict7[@"3"];  //不推荐

    NSLog(@"%@",value2);

#pragma mark 获取所有的键

    NSArray * allKeys = [dict7 allKeys];

    NSLog(@"%@",allKeys);

#pragma mark 获取所有的值

    NSArray * allValues = [dict7 allValues];

    NSLog(@"%@",allValues);

#pragma mark 通过值找键

    NSArray* objectKeys = [dict7  allKeysForObject:@"aaa"];

    NSLog(@"%@",objectKeys);

#pragma mark 遍历字典

//in前面的对象返回的字典的key

    for (id key1 in dict7) {

       NSLog(@"%@<-->%@",key1,[dict7 objectForKey:key1]);

    }


    NSLog(@"===============");

    NSArray * key2s = [dict7 allKeys];

    for (int  i = 0; i < [key2s count]; i++) {

        id key2 = [key2s objectAtIndex:i];

        NSLog(@"%@<-->%@",key2,[dict7 objectForKey:key2]);

    }


字典在以后的开发中经常使用到,比如数据的请求和解析,数据的缓存等等

1 0
原创粉丝点击