//
// main.m
// Object_C 05 字典
//
// Created by lanou3g on 15/8/22.
// Copyright (c) 2015年 lanou3g. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
/**
1.字典元素是以键值对的方式存储的
2.键值对就是key:value的形式
3.字典中的元素存放是无序的
4.通过key值取元素的值
5.字典中的key值不允许重复,但是value可以重复
6.字典有可变和不可变之分
7.key是唯一的,不能为空,但value可以重复
*/
//创典对建字象
NSArray *arrValue=@[@"zhang",@"yang",@"xiao"];
NSArray *arrKey=@[@"key1",@"key2",@"key3"];
NSDictionary *dic=[[NSDictionary alloc]initWithObjects:arrValue forKeys:arrKey];
NSLog(@"%@",dic);
NSLog(@"%@",arrKey);
//字面量方式
NSDictionary *dic1=@{@"key1":@"value1",
@"key2":@"value2",
@"key3":@"value3"
};
NSLog(@"%@",dic);
//字典的元素个数[dic1 count];
NSLog(@"%lu",[dic1 count]);
//获取key值
NSLog(@"%@",[dic1 allKeys]);
//获取value值
NSLog(@"%@",[dic1 allValues]);
//通过key值取出value值
NSLog(@"%@",[dic1 valueForKey:@"key1"]);
NSLog(@"%@",dic1[@"key2"]);
//可变字典***********************************
//使用便利构造器创建空的可变字典
NSMutableDictionary *dic2=[NSMutableDictionary dictionary];
NSLog(@"%@",dic2);
// NSMutableDictionary *dic3=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"1",@"2"@"3",@"4",@"5",@"6", nil]
//添加键值对
[dic2 setObject:@"qq富强" forKey:@"num1"];
[dic2 setObject:@"ww蛮强" forKey:@"num2"];
[dic2 setObject:@"ee密码" forKey:@"num3"];
NSLog(@"%@",dic2);
//根据key值删除元素
[dic2 removeObjectForKey:@"num1"];
NSLog(@"%@",dic2);
//修改一个元素[修改元素的时候,有key就修改对应的value值,没有的话就添加一个]
[dic2 setObject:@"fff" forKey:@"num1"];
NSLog(@"%@",dic2);
[dic2 setObject:@"aaa" forKey:@"num2"];
// 字典的遍历
NSArray *array=[dic2 allKeys];
for (int i=0; i<[dic2 count]; i++) {
NSLog(@"%@",[dic2 objectForKey:array]);
}
//删除
[dic2 removeAllObjects];
NSLog(@"%@",dic2);
字典的对象是数组
NSArray *arr1=@[@"v1",@"v2",@"v3",@"v4"];
NSArray *arr2=@[@"k1",@"k2",@"k2",@"k4"];
NSMutableDictionary *dic=[NSMutableDictionary dictionaryWithObjectsAndKeys:arr1,arr2, nil];
//遍历
for (NSString *str in dic) {
//针对对应的key找到value是一个数组,所以用一个数组对象来接收
NSArray *arr=dic[str];
for (NSString *temp in arr) {
NSLog(@"%@",temp);
}
}
//数组里的对象是字典
NSMutableDictionary *dic1=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"anyichen",@"name",@"31",@"age", nil];
NSMutableDictionary *dic2=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"xiaoyahuizi",@"name",@"11",@"age", nil];
NSMutableDictionary *dic3=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"ningzhiyuan",@"name",@"22",@"age", nil];
NSArray *arr=@[dic1,dic2,dic3];
for (NSMutableDictionary *d in arr) {
for (NSString *s in arr) {
NSLog(@"%@",s);
}
}
//打印value
for (NSDictionary *dic in arr) {
for (NSString *s in dic) {
NSArray *arr=dic[s];
NSLog(@"%@",arr);
}
}
for (NSDictionary *dic in arr) {
for (NSString *key in dic) {
NSLog(@"%@",dic[key]);
}
}
//集合
//不可变集
// NSSet *set=[[NSSet alloc]init];
//创建集合
NSSet *set=[NSSet setWithObjects:@"a",@"s",@"d",@"f",@"g", nil];
NSLog(@"%@",set);
//打印集合的个数
NSLog(@"%lu",[set count]);
//随机获取获取一个元素
NSLog(@"%@",[set anyObject]);
//判断集合中是否包含某个元素
BOOL r=[set containsObject:@"a"];
NSLog(@"d",r);
//将集合中的元素加到数组中
NSArray *array=[set allObjects];
NSLog(@"%@",array);
//********************************
//可变集合NSMutableSet
NSMutableSet *set1=[NSMutableSet set];
//将数组中的元素添加到集合
[set1 addObjectsFromArray:array];
NSLog(@"%@",set1);
//删除所有元素
[set1 removeAllObjects];
NSLog(@"%@",set1);
//将一个集合中的内容设置到另一个集合中
NSMutableSet *anOther=[NSMutableSet setWithObject:@"AAA"];
//接收的set清空,然后把另一个集合存入set
[set1 setSet:anOther];
NSLog(@"%@",set1);
// 快速遍历【枚举】
NSArray *arr=@[@"1",@"2",@"3",@"4",@"5"];
for (int i=0; i<[arr count]; i++) {
NSLog(@"%@",arr[i]);
}
//快速枚举 (快速遍历)
for (NSString * obj in arr) {
NSLog(@"%@",obj);
}
NSDictionary *dic=@{@"key1":@"value1",
@"key2":@"value2",
@"key3":@"value3"};
NSArray *array=[dic allKeys];
for (id key in array) {
NSLog(@"%@",dic[key]);
}
// 快速遍历对于字典来说,每次获取的都是key值
for (NSString *str in dic) {
NSLog(@"key=%@,value=%@",str,dic[str]);
}
//枚举器是一个工具帮我们从数组中将元素逐个取出
NSArray *arr=@[@"1",@"2",@"3",@"4",@"5"];
//枚举器
NSEnumerator *enum1=[arr objectEnumerator];
id obj;
while (obj=[enum1 nextObject]) {
NSLog(@"正在遍历:%@",obj);
}NSLog(@"结束:%@",[enum1 nextObject]);
}
return 0;
}
浙公网安备 33010602011771号