字典

1.字典的創建

     /*
     字典:保存數據的一種工具
     分類:不可變字典、可變字典
     詳情:通過鍵(key)-值(value)的形式存儲數據
    
     
     注意:
     1、value可以相同,key必須唯一
     2、字典保存對象類型
     3、key一般為字符串
     4、字典中的多個key-value是沒有順序的
     */

不可變字典

   //創建空字典
    NSDictionary *dic1 = [NSDictionary dictionary];
    NSDictionary *dic2 = [[NSDictionary alloc] init];
    
    
    //對像方法創建
    NSDictionary *dic3 = [[NSDictionary alloc] initWithObjectsAndKeys:@"sunck", @"1", @"is", @"2", @"a", @"3", @"good", @"4", @"man", @"5", nil];
    NSLog(@"dic3 = %@", dic3);
    
    
    //注意:前后兩個數組(數據,鍵值)一一對應的
    NSDictionary *dic4 = [[NSDictionary alloc] initWithObjects:@[@"sunck", @"is", @"a", @"good", @"man"] forKeys:@[@"1", @"2", @"3", @"4", @"5"]];
    
    //通過已存在的字典創建新的字典
    NSDictionary *dic5 = [[NSDictionary alloc] initWithDictionary:dic4];
    
    
    //類方法:
    NSDictionary *dic6 = [NSDictionary dictionaryWithObjectsAndKeys:@"sunck", @"1", @"is", @"2", @"a", @"3", @"good", @"4", @"man", @"5", nil];
    NSDictionary *dic7 = [NSDictionary dictionaryWithObjects:@[@"sunck", @"is", @"a", @"good", @"man"] forKeys:@[@"1", @"2", @"3", @"4", @"5"]];
    NSDictionary *dic8 = [NSDictionary dictionaryWithDictionary:dic4];
    
    //注意:鍵值之間用:鏈接,多個鍵值對用,分隔,最后省略了nil
    NSDictionary *dic9 = @{@"1": @"sunck", @"2": @"is", @"3": @"a", @"4": @"good", @"5": @"man"};

不可變字典的其他方法

  //取值
  NSDictionary *dic1 = @{@"1": @"sunck", @"2": @"is", @"3": @"a", @"4": @"good", @"5": @"man", @"6": @"Oh", @"7": @"he", @"8": @"is", @"9": @"good"};
  NSLog(@"dic1 = %@", dic1);
  //取一個值
  NSString *str = [dic1 objectForKey:@"3"];
  NSString *str2 = dic1[4];
  
  //取多個值
  NSArray * arr1 = [dic1 objectsForKeys:@[@"1",@"2",@"3"] notFoundMarker:@"NotFound"];
  //取s所有的值
  NSArray *value = [dic1 allValues];
  //取所有的key
  NSArray *key = [dic1 allKeys];
  //取出所有value對應的key
  NSArray *key3 = [dic1 allKeysForObject:@"sdd"];
  
  //遍歷字典
  //針對字典來說,in的前面是字典中的key
  //in的后面是要遍歷的集合(數組、字典)
  for (NSString *key in dic1) {
    NSString *value = [dic1 objectForKey:key];
  }
  
  //枚舉遍歷
  NSEnumerator *emumer = [dic1 keyEnumerator];
  id keyString = nil;
  while (keyString = [emumer nextObject]) {
    NSString *value = [dic1 objectForKey:keyString ];
  }

2.可變字典的增刪改查

//增
  NSMutableDictionary *mutDic = [[NSMutableDictionary alloc]initWithObjects:@[@"sun", @"is", @"a", @"good", @"man"] forKeys:@[@"1", @"2", @"3", @"4", @"5"]];
  //增加一個鍵值對
  [mutDic setObject:@"sdf" forKey:@"7"];
  //增加多個鍵值對,
  //注意:如果增加時,鍵值對鍵一樣,原數據會被修改為當前數據
  [mutDic addEntriesFromDictionary:@{@"6":@"sdf",@"3":@"sdf"}];
  
  //刪
  [mutDic removeObjectForKey:@"6"];
  //刪除多個
  [mutDic removeObjectsForKeys:@"6",@"5"];
  //刪除所有的
  [mutDic removeAllObjects];
  //改
  NSMutableDictionary *mutDic3 = [[NSMutableDictionary alloc] initWithObjects:@[@"sunck", @"is", @"a", @"good", @"man", @"!"] forKeys:@[@"1", @"2", @"3", @"4", @"5", @"6"]];
  [mutDic3 setObject:@"nice" forKey:@"4"];
  NSLog(@"mutDic3-1 = %@", mutDic3);
  [mutDic3 setValue:@"handsome" forKey:@"4"];
  NSLog(@"mutDic3-2 = %@", mutDic3);
  
  //將字典替換為后面的字典
  [mutDic3 setDictionary:mutDic1];
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容