OC中的NSDictionary(字典)

字典的基本概念數組

    OC中的字典(NSDictionaryNSMutableDictionary)是由鍵-值對組成的數據集合.正如,咱們在字典裏查找單詞的定義同樣.spa

    經過key(鍵),查找的對應的value(值),key一般是字符串對象,也能夠是其餘任意類型對象.在一個字典對象中,key的值必須是惟一的.code

    此外,字典對象的鍵和值不能夠爲空(nil),若是須要在字典中加入一個空值,能夠加入NSNull對象orm


字典中存儲方式是無序的,由於字典是沒有下標的!!!對象

字典中存儲方式是無序的,由於字典是沒有下標的!!!three

字典中存儲方式是無序的,由於字典是沒有下標的!!!ci


NSDictionary(字典)rem

字典的初始化字符串

key不要重複,重複了只識別第一個it

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //不可變字典
        
        //只有一個鍵值對的字典初始化
        //將整數1轉化成NSNumber類型,用a存放
        NSNumber *a = [NSNumber numberWithInt:1];
        //定義一個只有一個鍵值對的字典b,value值是"xiaoming", key值是a(其實就是1)
        NSDictionary *b = [NSDictionary dictionaryWithObject:@"xiaoming" forKey:a];
        NSLog(@"%@", b);
        
        //定義一個有多個鍵值對的字典
        NSDictionary *c = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", nil];
        NSLog(@"%@", c);
        
    }
    return 0;
}



獲取字典鍵值對的個數

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        
        //定義一個有多個鍵值對的字典
        NSDictionary *a = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", nil];

        //使用[a count]獲取字典鍵值對的個數
        NSLog(@"%lu", (unsigned long)[a count]);
        
        
    }
    return 0;
}



根據字典裏面的key  獲取value

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        
        //定義一個有多個鍵值對的字典
        NSDictionary *a = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", nil];
        
        //根據字典a裏面的key@"two", 獲取它"two"所對應的value值
        //使用 NSString 來接收!!!
        NSString *b = [a objectForKey:@"two"];
        
        NSLog(@"%@", b);
        
        
    }
    return 0;
}



拿到字典裏面相同 value 的全部 key

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        
        //定義一個有多個鍵值對的字典
        NSDictionary *a = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaoming", @"two", @"xiaoqiang", @"three", @"xiaoming", @"four", nil];
        
        //拿到字典a裏面全部valu是@"xiaoming"的key,新建一個數組b來存放
        NSArray *b = [a allKeysForObject:@"xiaoming"];
        
        NSLog(@"%@", b);
        
        
    }
    return 0;
}




NSMutableDictionary(可變字典)

可變字典的初始化 及 賦值

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //可變字典的初始化
        //方法1)給可變字典a初始化了一個空間
        NSMutableDictionary *a = [[NSMutableDictionary alloc]initWithCapacity:10];
        NSLog(@"%@", a);
        //方法2)給可變字典a初始化了一個空間
        NSMutableDictionary *c = [NSMutableDictionary dictionary];
        NSLog(@"%@", c);
        //a,c打印都是空的
        
        
        
        //給可變字典b添加了多個鍵值對
        NSMutableDictionary *b = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", @"xiaogang", @"four",nil];
        
        NSLog(@"%@", b);
  
    }
    return 0;
}




向可變字典添加一個字典

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //向可變字典添加一個字典
        
        //新建一個可變字典a
        NSMutableDictionary *a=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", nil];
        //新建一個可變字典b
        NSDictionary *b = [NSDictionary dictionaryWithObject:@"xiaogang" forKey:@"four"];
        //將b字典添加到a字典裏面
        //--------------字典裏面是無序的,由於字典裏面是沒有下標的!!!-----------------
        [a addEntriesFromDictionary:b];
        
        NSLog(@"%@", a);
  
    }
    return 0;
}



設置字典字典的value

key同樣更新value 

Key不同添加鍵值對

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //設置可變字典中的value
        
        //新建一個可變字典a
        NSMutableDictionary *a=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", nil];
        NSLog(@"%@", a);
        
        //經過可變字典a中的key@"one", 改變它所對應的value值
        [a setValue:@"xiaogang" forKey:@"one"];
        //打印出來:由於字典a裏面有key@"one",因此key@"one"所對應的value變成了@"xiaogang"
        NSLog(@"%@", a);
        
        
        //由於字典a裏面沒有key@"four",因此新添加一個鍵值對
        [a setValue:@"xiaoliu" forKey:@"four"];
        //打印出來:在原有字典a裏面新添加一個鍵值對four = xiaoliu;
        NSLog(@"%@", a);
  
    }
    return 0;
}




將字典裏面的值所有設置成新值

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        NSMutableDictionary *a = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", nil];
        
        NSMutableDictionary *b = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaogang", @"four", @"xiaoliu", @"five", nil];
        //將字典a裏面的全部值所有設置成了b裏面的值,至關於所有設置新值
        [a setDictionary:b];
        
        //打印出a裏面是b的值,由於已經所有設置成了b的值
        NSLog(@"%@", a);
        
  
    }
    return 0;
}



根據key刪除相對應的value,等於刪除字典中這個元素

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        NSMutableDictionary *a = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", nil];
        
        //根據字典a裏面的key@"one", 刪除相對應的value值,等於刪除這個元素
        [a removeObjectForKey:@"one"];
        
        NSLog(@"%@", a);
        
  
    }
    return 0;
}



根據數組中的key,刪除字典中相對應的全部value(等於刪除這個元素)

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //根據數組中的key,刪除字典中相對應的value(也就是元素)
        
        //新建一個可變字典a
        NSMutableDictionary *a = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", @"xianggang", @"four", @"xiaoliu", @"five", nil];
        //新建一個數組b,其中包含數組a裏面的key
        NSArray *b = [NSArray arrayWithObjects:@"one",@"three",@"five", nil];
        //根據數組b裏面的key,刪除字典a中相對應的value(也就是元素)
        [a removeObjectsForKeys:b];
        
        NSLog(@"%@", a);
        
  
    }
    return 0;
}




刪除字典中全部的元素

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //刪除字典中全部的元素
        
        //新建一個可變字典a
        NSMutableDictionary *a = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", @"xianggang", @"four", @"xiaoliu", @"five", nil];
        
        //刪除字典中全部的元素
        [a removeAllObjects];
        
        NSLog(@"%@", a);
        
  
    }
    return 0;
}
相關文章
相關標籤/搜索