#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool
{
NSNumber* num01 = [[NSNumber alloc] initWithInt:1001] ;
NSNumber* num02 = [[NSNumber alloc] initWithInt:1002] ;
NSNumber* num03 = [[NSNumber alloc] initWithInt:1003] ;
NSNumber* num04 = [[NSNumber alloc] initWithInt:1004] ;
NSNumber* num05 = [[NSNumber alloc] initWithInt:1005] ;
NSString* name01 = @"小刚";
NSString* name02 = @"小明";
NSString* name03 = @"小强";
NSString* name04 = @"小红";
NSString* name05 = @"小霞";
//声明并创建字典对象
//通过关键字和使用值来创建对象
//每一个关键字和使用值组成一组键值对
//字典中的每个元素由一对键值对组成
//此函数中前面的值为使用值
//后面的值为关键字
//不可变更字典
NSDictionary* dic = [[NSDictionary alloc] initWithObjectsAndKeys:
num01,@"111",
num02,@"222",
num03,@"333",
num04,name04,
num05,name05,
nil];
//通过关键字(学生姓名)获得学生信息(学号)
NSNumber* numS1 = [dic objectForKey:name01] ;
NSLog(@"numS1 = %@",numS1) ;
NSNumber* numS4 = [dic objectForKey:name04] ;
NSLog(@"numS4 = %@",numS4) ;
//使用for each循环遍历字典
//遍历获得的元素值为关键字
for (NSString* keyName in dic)
{
NSNumber* num = [dic objectForKey:keyName] ;
NSLog(@"num = %@",num);
}
//创建一个学号数组
NSArray* arrayNum = [[NSArray alloc] initWithObjects:
num01,
num02,
num03,
num04,
num05,nil];
//创建姓名数组
NSArray* arrayName = [[NSArray alloc] initWithObjects:
name01,
name02,
name03,
name04,
name05,nil];
//通过对象数组和关键字数组创建字典
//要求参数的两个数组中的元素个数一致
NSDictionary* dic2 =
[NSDictionary dictionaryWithObjects:arrayName forKeys:arrayNum];
for (NSNumber* numKey in dic2) {
NSString* strName = [dic2 objectForKey:numKey] ;
NSLog(@"strName = %@",strName) ;
}
//创建可变字典
NSMutableDictionary* mDic = [[NSMutableDictionary alloc] init] ;
//添加键值对
[mDic setObject:name01 forKey:num01];
[mDic setObject:name02 forKey:num02] ;
[mDic setObject:name03 forKey:num03] ;
[mDic setObject:name04 forKey:num04] ;
[mDic setObject:name05 forKey:num05] ;
//如果添加的新元素的key与原来的字典中的key一样
//将原来key所对应的值覆盖掉
//不会添加新元素空间
[mDic setObject:name05 forKey:num01] ;
for (NSNumber* num in mDic)
{
NSLog(@"name = %@", [mDic objectForKey:num]);
}
//删除所有元素
//[mDic removeAllObjects] ;
//根据key删除一个元素
[mDic removeObjectForKey:num03] ;
[mDic removeObjectForKey:num02] ;
[mDic removeObjectForKey:num02] ;
for (NSNumber* num in mDic)
{
NSLog(@"name = %@", [mDic objectForKey:num]);
}
//创建删除关键字数组
NSArray* arrayDel = [NSArray arrayWithObjects:num04,num05, nil];
//根据关键字数组删除元素
[mDic removeObjectsForKeys:arrayDel] ;
NSLog(@"\n");
for (NSNumber* num in mDic)
{
NSLog(@"name = %@", [mDic objectForKey:num]);
}
// insert code here...
NSLog(@"Hello, World!");
}
return 0;
}