字典

字典:
1,字典是一种数据结构,是以键值对的形式来存储数据
2,字典中的键值对可以是任意类型的对象,但是key一般是字符串
3,键在字典中是唯一存在的
4,字典中,键值对是没有顺序的



 <1>创建方法
(1) 从Xcode4.6 以后允许用下述方式创建一个字典
      NSDictionary* dic4 = @{@"1":@"one",@"2":@"two",@"3":@"three};     
(2) //实例化方法
     - ( id )initWithObjectsAndKeys:( id )firstObject, …;
(3)  用一个字典来创建一个新的字典
     -( id )initWithDictionary( NSDictionary *)otherDictionary;
  (4) 用两个数组来创建字典,一个数组中装的是所有的键   另外一个数组装的是所有的值, 两个数组的长度必须相等
    NSArray * valueArray = @[ @"one" , @"two" , @"three" ] ;
    
NSArray * keyArray = @[ @"1" , @"2" , @"3" ] ;
    
NSDictionary * dict3 = [[ NSDictionary alloc ] initWithObjects :valueArray forKeys :keyArray];

 (5) 该创建方式携带的参数是值键排列
系统会将奇数个元素作为值,偶数个元素作为键来创建字典
   
NSDictionary * dict = [[ NSDictionary  alloc ] initWithObjectsAndKeys : @"one" , @"1" , @"two" , @"2" , nil ];

  //
类方法创建
 (6) + ( id )dictionaryWithObjectsAndKeys:( id )firstObject, ...;
 (7) + (
id )dictionaryWithDictionary:( NSDictionary *)dict;

  <2>
获取键值对个数
  - (
NSUInteger )count;

  <3>
根据key 获取相应的值
  - (
id )objectForKey:( id )aKey;

  <4>
获取字典中所有的key
  - (
NSArray *)allKeys;

  <5>
获取值是 anObject 的所有的key
  - (
NSArray *)allKeysForObject:( id )anObject; 
  
  <6>
获取字典中所有的值
  - (
NSArray *)allValues;

  <7>如何遍历字典
         枚举遍历
        NSEnumerator* enu = [dic keyEnumerator];
        
NSString* str;
        
while((str = [enu nextObject])!= nil) {
           
NSLog(@"%@",[dicobjectForKey:str]);
         }
   //
通过字典的keyEnumerator方法返回一个枚举器,这个枚举器中装得是字典的Key,遍历这些Key ,通过key 去获取value

快速遍历
for  in循环:
     NSDictionary* dic = @{@"1":@"one",@"2":@"two",@"3":@"three",@"4":@"four"};
     
for (NSString * key in dic) {
          
           
NSLog(@"%@",[dicobjectForKey:key]);
     }




二.可变字典
<1> 增加键值对
[muDic setObject : @"one" forKey : @"1" ];
//如果Key 是存在的,就修改key 所对应的value 的值,如果不存在,就添加一个键值对

// 增加整个字典
- ( void )addEntriesFromDictionary:( NSDictionary *)otherDictionary;

<2>
删除键值对
//通过key 去删除key所对应的键值对
      [muDic removeObjectForKey : @"5" ];
       
//把所有想删除的键值对的key都放到一个数组中,通 removeObjectsForKeys 删除所有数组中key 对应的键值对
     
NSArray * keyArray = @[ @"1" , @"3" ] ;
      [muDic
removeObjectsForKeys :keyArray];

//删除所有的键值对
        [muDic
removeAllObjects ];

<3>修改键值对
[muDic setValue : @"five" forKey : @"4" ];
//如果Key 是存在的,就修改key 所对应的value 的值,如果不存在,就添加一个键值对

//修改整个字典
  - (
void )setDictionary:( NSDictionary *)otherDictionary; 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值