NSDictionary 字典 集合NSSet

2021-06-23 03:30:06 字數 4562 閱讀 8803

/*字典存在的價值 :

0. 字典類是用於儲存具有對映關係(key - value對)的資料, 字典一旦建立,鍵值對就不可更改, 不可新增, 不可刪除.僅能讀取key 或者 value

1. 大容器,用來儲存多個資料,

2.用來儲存的資料具有--對應的關係.(使用key 來標識 value).

3.對於字典中的一對鍵值對(key - value)叫做字典中的乙個元素. 也叫乙個條目, 只要是物件就可以, 不限制型別.

4.字典是無序的

5.字典中的key是唯一的, 乙個key 只能對應乙個value ,乙個value 可以對應多個 key.*/

//1.建立字典物件

//(1)便利構造器

nsdictionary *dic = [nsdictionary dictionarywithobjectsandkeys:@"summer", @"name", @"male", @"gender", @20, @"height", @12, @"age", nil];

nslog(@"%@", dic);

//(2)初始化方法

nsdictionary *dic1 = [[nsdictionary alloc] initwithobjectsandkeys:@"summer", @"name", @"male", @"gender", @20, @"height", @12, @"age", nil];

nslog(@"%@", dic1);

//2.求字典元素個數

nsinteger count = [dic count];

nslog(@"count = %ld", count);

//3.獲取所有的key

nsarray *keys = [dic allkeys];

nslog(@"%@", keys);

//4獲取所有的value

nsarray *value = [dic allvalues];

nslog(@"%@", value);

//5.根據key獲取對應的value

//通過為物件字典傳送objeforkey訊息可以根據給定的key去獲取對應的value,這裡如果給定的key不存在,則返回null作為value,表示沒有找到對應的value.

nsstring *name = [dic objectforkey:@"name"];

nslog(@"name = %@", name);

nsnumber *age = [dic objectforkey:@"age1"];

nslog(@"age = %@", age);

nsstring *gender = [dic objectforkey:@"gender"];

nslog(@"gender = %@", gender);

nsnumber *height = [dic objectforkey:@"height"];

nslog(@"height = %@", height);

//字典快速遍歷

//快速遍歷: 對於陣列來說,遍歷得到的是陣列中的每乙個元素

//對於字典來說, 遍歷得到的是字典中的key, 然後通過key 獲取 value

for (nsstring *key in dic)

//對於可變字典來說,比不可變字典多了增加, 刪除, 修改操作

//1.建立物件

nsmutabledictionary *mutabledic = [nsmutabledictionary dictionarywithobjectsandkeys:@"summer", @"name1", @"sunshine", @"name2", @"angle", @"name3", nil];

nslog(@"%@", mutabledic);

//2.求字典元素個數

nsinteger count = [mutabledic count];

nslog(@"count = %ld", count);

//3.刪除元素

[mutabledic removeobjectforkey:@"name3"];

nslog(@"%@", mutabledic);

[mutabledic removeallobjects];

nslog(@"%@", mutabledic);

//批量刪除

[mutabledic removeobjectsforkeys:[nsarray arraywithobjects:@"name1", @"name2", nil]];

nslog(@"%@", mutabledic);

//4.新增元素

[mutabledic setobject:@"kimi" forkey:@"name1"];

nslog(@"%@", mutabledic);

//5.修改key對應的value

[mutabledic setobject:@"angle" forkey:@"name1"];

nslog(@"%@", mutabledic);

//setobject: forkey: 工作原理

// 先根據指定得key查詢字典中是否存在相同的key.(查詢字典中是否存在指定的key).如果存在則修改key對應的value. 如果不存在,在字典中新增乙個元素,key - value 鍵值對

//集合

//1.集合與數學集合一樣, 儲存的元素互不相同(互異性)(唯一性).

//2.儲存的元素無序性

//3.儲存元素必須是物件型別

//1.建立集合物件

//(1)遍歷構造器方法

nsset *set1 = [nsset setwithobjects:@"summer", @"sunshine", @"angle", @"procedure", @"oriented", @"programming", nil];

nslog(@"%@", set1);

//(2)初始化方法

nsset *set2 = [[nsset alloc] initwithobjects:@"summer", @"sunshine", @"angle", @"procedure", @"oriented", @"programming", @"object", @"oriented", @"programming", nil];

nslog(@"%@", set2);

//2.獲取元素個數

nsinteger count = [set2 count];

nslog(@"count = %ld", count);

//3.獲取集合中的某個元素(為了方便性)

nsstring *str1 = [set2 anyobject];

nslog(@"%@", str1);

nsstring *str2 = [set2 anyobject];

nslog(@"%@", str2);

nsstring *str3 = [set2 anyobject];

nslog(@"%@", str3);

nsstring *str4 = [set2 anyobject];

nslog(@"%@", str4);

nsstring *str5 = [set2 anyobject];

nslog(@"%@", str5);

//4.判斷集合中是否包含某個物件

bool i***ist = [set2 containsobject:@"summer"];

nslog(@"%d", i***ist);

//可變集合

nsmutableset *set2 = [[nsmutableset alloc] initwithobjects:@"summer", @"sunshine", @"angle", @"procedure", @"oriented", @"programming", @"object", @1, @"programming", @"programming", @"programming", @1, @1,nil];

nslog(@"%@", set2);

//1.新增元素

[set2 addobject:@"cindy"];

nslog(@"%@", set2);

//2.移除元素

[set2 removeobject:@"summer"];

nslog(@"%@", set2);

//求帶有記錄物件重複次數的子類nscountset

nscountedset *countedset = [nscountedset setwithobjects:@"programming", @"programming",@"programming",nil];

//通過例項方法countforobject:來得到指定物件的重複次數

nsinteger count = [countedset countforobject:@"programming"];

nslog(@"count = %ld", count);

字典NSDictionary 使用注意

void viewdidload self dic dic self dicdata nsdictionary alloc init void touchesbegan nsset touches withevent uievent event if a nslog e nslog a,b,c,d ...

NSDictionary 字典 KVC 的使用

字典分為不可變字典 nsdictionary 和可變字典 nsmutabledictionary 不可變字典 1.建立字典 nsdictionary dic nsdictionary dictionarywithobjectsandkeys male 20 age tom name run hobb...

OC中字典NSDictionary用法

字典就是 鍵值對 建立字典的兩種方式 1.nsdictionary dic nsdictionary alloc initwithobjectsandkeys one 1 two 2 three 3 nil 2.nsdictionary dic1 字典中得所有 key value 都是無順序的。乙個...