NSDictionary&& NSMutableDictionary使用

認識字典

  字典是用存儲鍵值對的數據結構;每一個鍵對應一個值,在一個字典中,鍵是唯一的值可以重複。值纔是目的,鍵是手段(爲了可以快速的獲取值)

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]);

    }


字典在以後的開發中經常使用到,比如數據的請求和解析,數據的緩存等等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章