1.概念:字典是關鍵字key
及其定義的值value
所構成的集合.即它是由key-value組成的鍵值隊的集合.通常來講,key
一般是nsstring
型別,value
是oc中任意的物件.對於字典來講,我們就是通過key
來訪問value
.
2.為什麼在有了陣列後,還需要有字典呢?在有大量的資料或頻繁的查詢資訊時,使用字典的話,效率更高.因為字典是採用鍵查詢的優化儲存方式.
3.在oc中,我們使用nsdictionary
和nsmutabledictionary
來表示字典.其中,nsmutabledictionary
是nsdictionary
的子類.
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 組成字典的 鍵 必須是 不可變 的資料型別,比如,數字,字串,元組等 列...