字典的原理:
与java中的hashmap功能相同
key ---> value
字典中存储的都是键值对
一、dictionary
创建字典方法1:
NSArray *keys = @[@"name", @"address"];
NSArray *objects = @[@"jack", @"tianjin"];
NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
创建字典方法2:编译器特性
NSDictionary *dict = @{@"name" : @"jack",
@"address" : @"tianjin",
@"QQ" : @"312353"
};
id obj = [dict objectForKey:@"name"];
NSLog(@"%@", obj);
二、mutableDictionary
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
//添加键值对
[dict setObject:@"jack" forKey:@"name"];
[dict setObject:@"342345" forKey:@"QQ"];
//移除键值对
//[dict removeObjectForKey:<#(id)#>];
//打印字典:打印所有的键值对
NSLog(@"%@",dict);
三、字典的遍历:
//字典不允许有相同的key,但是允许有相同的value
//字典是无序的
NSDictionary *dict = @{
@"name" : @"jack",
@"name2" : @"jack",
@"address" : @"tianjin",
@"QQ" : @"312353"};
遍历1:
NSArray *keys = [dict allKeys];
for (int i = 0; i < dict.count; i++)
{
NSString *key = keys[i];
NSString *object = dict[key];
NSLog(@"%@ - %@", key, object);
}
遍历2:
[dict enumerateKeysAndObjectsUsingBlock:
^(id key, id obj, BOOL *stop) {
NSLog(@"%@ - %@", key , obj);
与java中的hashmap功能相同
key ---> value
字典中存储的都是键值对
一、dictionary
创建字典方法1:
NSArray *keys = @[@"name", @"address"];
NSArray *objects = @[@"jack", @"tianjin"];
NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
创建字典方法2:编译器特性
NSDictionary *dict = @{@"name" : @"jack",
@"address" : @"tianjin",
@"QQ" : @"312353"
};
id obj = [dict objectForKey:@"name"];
NSLog(@"%@", obj);
二、mutableDictionary
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
//添加键值对
[dict setObject:@"jack" forKey:@"name"];
[dict setObject:@"342345" forKey:@"QQ"];
//移除键值对
//[dict removeObjectForKey:<#(id)#>];
//打印字典:打印所有的键值对
NSLog(@"%@",dict);
三、字典的遍历:
//字典不允许有相同的key,但是允许有相同的value
//字典是无序的
NSDictionary *dict = @{
@"name" : @"jack",
@"name2" : @"jack",
@"address" : @"tianjin",
@"QQ" : @"312353"};
遍历1:
NSArray *keys = [dict allKeys];
for (int i = 0; i < dict.count; i++)
{
NSString *key = keys[i];
NSString *object = dict[key];
NSLog(@"%@ - %@", key, object);
}
遍历2:
[dict enumerateKeysAndObjectsUsingBlock:
^(id key, id obj, BOOL *stop) {
NSLog(@"%@ - %@", key , obj);
}];