OC學習 字典

2021-07-04 07:56:04 字數 3594 閱讀 6374

1.概念:字典是關鍵字key及其定義的值value所構成的集合.即它是由key-value組成的鍵值隊的集合.通常來講,key一般是nsstring型別,value是oc中任意的物件.對於字典來講,我們就是通過key來訪問value.

2.為什麼在有了陣列後,還需要有字典呢?在有大量的資料或頻繁的查詢資訊時,使用字典的話,效率更高.因為字典是採用鍵查詢的優化儲存方式.

3.在oc中,我們使用nsdictionarynsmutabledictionary來表示字典.其中,nsmutabledictionarynsdictionary的子類.

4.不可變字典初始化

nsdictionary *dictionary1 = [nsdictionary dictionary];

nsdictionary *dictionary2 = [[nsdictionary alloc] init];

//建立乙個健值對的字典

nsdictionary *dictionary3 = [nsdictionary dictionarywithobject:@"aaa" forkey:@"name"];

//建立多個健值對的字典

nsdictionary *dictionary4 = [nsdictionary dictionarywithobjectsandkeys:@"aaa",@"name",@24,@"age",@"111",@"address", nil];

//value在前,key在後,value和key成雙出現

nslog(@"%@",dictionary4);

//根據乙個字典建立乙個字典

nsdictionary *dictionary5 = [nsdictionary dictionarywithdictionary:dictionary4];

//新語法建立字典

nsdictionary *dictionary6 = @{};//空字典

nsdictionary *dictionary7 = @;

nsdictionary *dictionary8 = @;

nslog(@"%@",dictionary8);

nsdictionary *dictionary10 = [nsdictionary dictionarywithcontentsoffile:@""];

nsdictionary *dictionary11 = [nsdictionary dictionarywithcontentsofurl:[nsurl urlwithstring:@""]];

5.如何訪問字典的數量

//求字典中健值對的數量

nsinteger count = dictionary4.count;

nslog(@"%ld",count);

6.如何訪問字典中元素

//通過key來訪問字典中對應的值

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

nslog(@"%@",name);

//新語法

nsstring *newname = dictionary4[@"name"];

nslog(@"%@",newname);

//如何遍歷字典中的所有值?

//表示字典中所有的key

nsarray *keyarray = dictionary4.allkeys;

//表示字典中所有的value

nsarray *valuearray = dictionary4.allvalues;

for (nsstring *key in keyarray)

enumerator = dictionary4.keyenumerator;

nsstring *key;

while (key = [enumerator nextobject])

7.在字典中,不能夠存在相同的key,能夠存在相同的value

8.在字典中,健值對是無序的.

//如果字典的key重複了,後面的值就會覆蓋前面的值

nsdictionary *dictionary9 = @;

nslog(@"d9%@",dictionary9);

可變字典

1.1.初始化方法

nsmutabledictionary *mdictionary1 = [nsmutabledictionary dictionary];

nsmutabledictionary *mdictionary2 = [nsmutabledictionary dictionarywithobject:@"name" forkey:@"yanshuxin"];

nsmutabledictionary *mdictionary3 = [nsmutabledictionary dictionarywithobjectsandkeys:@"name",@"yanshuxin",@"age",@21, nil];

//沒有新語法

nsmutabledictionary *mdictionary4 = [nsmutabledictionary dictionarywithdictionary:dictionary8];

//自己獨有的初始化方法

nsmutabledictionary *mdictionary5 = [nsmutabledictionary dictionarywithcapacity:10];

nsmutabledictionary *mdictionary6 = [nsmutabledictionary dictionarywithcontentsoffile:@""];

nsmutabledictionary *mdictionary7 = [nsmutabledictionary dictionarywithcontentsofurl:[nsurl urlwithstring:@""]];

2.操作

//增

[mdictionary5 setvalue:@"yanshuxin" forkey:@"name"];

nslog(@"a%@",mdictionary5);

//改[mdictionary5 setvalue:@"yanshuxin" forkey:@"name"];

nslog(@"b%@",mdictionary5);

//刪[mdictionary5 removeobjectforkey:@"name"];

[mdictionary5 removeobjectsforkeys:@];

[mdictionary5 removeallobjects];

nslog(@"c%@",mdictionary5);

//新語法

mdictionary5[@"name"] = @"carmen";

nslog(@"c%@",mdictionary5);

OC篇學習 字典

字典是無序存在的 字典中得key值和value值是成對出現的 鍵值對 字典中得key值必須是唯一的 不能夠重複 不可變的字典 在初始化字典的時候key值在後 value在前 在控制台輸出的時候 key值在後 value在前 如果key值重複的出現 程式在編譯的時候 認為這個key值已經存在 不會再去...

OC學習 字典轉模型

模型類 即用來存放資料的類,繼承自nsobject.所謂模型,其實就是資料模型,專門用來存放資料的物件,用它來表示會更加專業.模型設定資料和取出資料都是通過它的屬性,屬性名如果寫錯,編譯器會馬上報錯,因此保證了資料的正確性.使用模型訪問屬性時,編譯器會提供一系列的提示,提高編碼效率.字典轉模型應該提...

python學習 字典

字典的形式 形式 dict key 鍵 可以理解為代號 value 值 代號所指代的內容 字典的特點 1 字典是 無序 的,它不能通過偏移來訪問,只能 通過鍵來訪問 2 可以巢狀 3 可變資料型別,可以在原地修改裡面的內容。4 組成字典的 鍵 必須是 不可變 的資料型別,比如,數字,字串,元組等 列...