OC字典集合遍歷以及排序_第1頁
OC字典集合遍歷以及排序_第2頁
OC字典集合遍歷以及排序_第3頁
OC字典集合遍歷以及排序_第4頁
OC字典集合遍歷以及排序_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 /數(shù)組遍歷 /* 數(shù)組遍歷 原理:通過for循環(huán)的循環(huán)變量用作數(shù)組元素下標來獲取不同下標的元素。 循環(huán)次數(shù)就是數(shù)組元素的個數(shù)。 */ NSArray *cityArray = "bj","hn","sx","sd","xg" /字典 NSDictionary *dic =NSDictionary dictionaryWithObjectsAndKeys:"zhang3","name","chiF","hobby",

2、"18","age", nil; /集合 NSSet *set=NSSet setWithObjects:"123","456","789","1011", nil; for (int i=0 ; i<cityArray count; i+) /根據(jù)下標從數(shù)組中取出對應(yīng)下標 NSString * string = cityArray objectAtIndex:i; NSLog("*數(shù)組*%",string); /字典遍歷 /* 字典遍歷 原理:先獲

3、取字典中所有的key,存儲到數(shù)組中,遍歷數(shù)組依次取 出每一個key,然后根據(jù)key從字典中取出對應(yīng)的value。 字典取值要通過key取出對應(yīng)的value。 循環(huán)次數(shù)等于字典的元素個數(shù)。 */ NSArray *key=dic allKeys;/取出dic這個字典當(dāng)中 的所有的key值(存儲到數(shù)組) for (int i=0 ; i<key count; i+) /通過數(shù)組元素的下標取出對應(yīng)的key NSString *keyy=key objectAtIndex:i; NSString* valuee=dic objectForKey:keyy; NSLog("key= %

4、*字典* value = %",keyy,valuee); /集合遍歷 /* 原理: 用集合的allObject屬性先取到集合的所有元素存儲到數(shù)組 中,再通過for循環(huán)的循環(huán)變量用作下標來取到每個元素 */ NSArray *setObject = set allObjects; for (int i=0 ; i<setObject count; i+) /從集合的 allObjects(setObject數(shù)組)中獲取對應(yīng)的下標所對應(yīng)的元素,并輸出 NSLog("集合*%",setObject objectAtIndex:i); NSArray *strin

5、g ="xiaoM","erQ","sanP","siX","daC" NSMutableArray *temp =NSMutableArray arrayWithCapacity:0; for (int i=0 ; i<string count; i+) temp addObject:string objectAtIndex:(string.count-1-i); NSLog("*倒取*%",temp); NSDictionary *ren ="name&q

6、uot;:"dada","sex":"man","age":"28" NSArray*keey =ren allKeys; for (int i=0 ; i<ren count; i+) NSLog("*字典* *key* % *value*%",keey objectAtIndex:i,ren objectForKey:keey objectAtIndex:i); / NSEnumerator: / NSEnumerator -數(shù)組-正序遍歷 NSEnumerator

7、* arrayEnum = cityArray objectEnumerator; id value = nil;/存儲數(shù)組元素對象 while (value = arrayEnum nextObject) NSLog("*NSEnumerator*%",value); /數(shù)組-倒序遍歷 NSEnumerator *arrayReverse=cityArray reverseObjectEnumerator; id value1=nil; while (value1=arrayReverse nextObject) NSLog("* NSEnumerator倒序*

8、%",value1); /字典 NSEnumerator NSEnumerator *dictEnmu =ren objectEnumerator; id value2 = nil; while (value2=dictEnmu nextObject) NSLog("*字典*%",value2); / NSEnumerator 集合 NSEnumerator*setEnmu=set objectEnumerator; id value3= nil; while (value3=setEnmu nextObject) NSLog("*集合*%",

9、value3); /* * NSEnumerator:遍歷數(shù)組每個索引處的對象,而 NSEnumerator它是用來描述這種集合迭代的運算方式 通過objectEnumerator向數(shù)組請求一個枚舉器,如果想使用從后往前瀏覽打印可以使用reverseObjectEnumerator方法,在獲得枚舉器后,開始循環(huán),每次循環(huán)都向這個枚舉器請求他的下一個對象:nextObject返回nil值時候,代表循環(huán)結(jié)束 注意:不可以對可變數(shù)組(可變字典)進行一個增加或者刪除的操作,因為枚舉器是不可以改變的 */ /for.in遍歷 /遍歷數(shù)組 for (NSString*city in cityArray)

10、NSLog("*for.in遍歷*%",city); /字典 for (NSString *key in ren) NSLog("*字典*%",ren objectForKey:key); /集合 for (NSString*setS in set) NSLog("*集合*%",setS); /數(shù)組排序:因為在我們集合類當(dāng)中有數(shù)組中的元素是有序排列,而字典集合排列是無序的, /只能對數(shù)組排序 NSArray * array0 ="zhang3","li4","wang5",&

11、quot;zhao6" NSMutableArray*array00="zhang3","li4","wang5","zhao6","hu8" mutableCopy; / 使用 NSSortDescriptor(排序描述) /* * 它由以下參數(shù)組成: 鍵:對于一個給定集合,對應(yīng)值的鍵位將對集合中的每個對象進行排序; 升序:指定一個集合是否按照升序(YES)還是降序(NO)進行排序的BOOL值; */ /"self":代表的是直接可以進行排序的,如果對一個類的屬性

12、進行排序,那么我們直接放"屬性名"即可后邊yes代表升序,no代表降序 /不可變數(shù)組 NSSortDescriptor *arrayNSSortDescriptor =NSSortDescriptor alloc initWithKey:"self" ascending:1; NSArray*sortedStringArray =array0 sortedArrayUsingDescriptors:NSArray arrayWithObjects:arrayNSSortDescriptor, nil; NSLog("排序*NSSortDescr

13、iptor*%",sortedStringArray); /可變數(shù)組 array00 sortUsingDescriptors:NSArray arrayWithObjects:arrayNSSortDescriptor, nil; NSLog("*可變數(shù)組*%",array00); /使用數(shù)組方法,傳入數(shù)組中的兩個元素比較的方法名 /不可變數(shù)組 /compare:默認是一個升序排序 /selector方法選擇器 NSArray *sortedArray =array0 sortedArrayUsingSelector:selector(compare:); NS

14、Log("->>%",sortedArray); /可變數(shù)組 array00 sortedArrayUsingSelector:selector(compare:); NSLog(">>>>>>>%",array00); /數(shù)組排序-數(shù)組中存放自定義類對象排序- Person *per1=Person alloc initWithName:"mhang3" age:99 sex:"m" Person *per2=Person alloc initWithName

15、:"zhang4" age:19 sex:"w" Person *per3=Person alloc initWithName:"ahang5" age:223 sex:"m" Person *per4=Person alloc initWithName:"zhang6" age:217 sex:"w" Person *per5=Person alloc initWithName:"zhang7" age:20 sex:"m" Pers

16、on *per6=Person alloc initWithName:"bhang08" age:23 sex:"w" Person *per7=Person alloc initWithName:"zhang9" age:10 sex:"m" /生成數(shù)組對象 NSArray *perArray =per1,per2,per3,per4,per5,per6,per7; / NSSortDescriptor /生成初始化,排序描述-按照人名進行排序 NSSortDescriptor*sortWithName =NSS

17、ortDescriptor alloc initWithKey:"name" ascending:YES; /通過排序描述對數(shù)組進行排序,生成新的排序后的數(shù)組 NSArray *sortedWithName = perArray sortedArrayUsingDescriptors:NSArray arrayWithObjects:sortWithName, nil; NSLog("sortedWithName *%",sortedWithName); /年齡 NSSortDescriptor*sortWithAge =NSSortDescriptor

18、 alloc initWithKey:"age" ascending:0; NSArray*age0=perArray sortedArrayUsingDescriptors:NSArray arrayWithObjects:sortWithAge, nil; NSLog("sortedWithAge *%",age0); /可變數(shù)組 生成初始化描述 - 按照性別升序 NSSortDescriptor*sortWithSex =NSSortDescriptor alloc initWithKey:"sex" ascending:0;

19、NSMutableArray *mArray =perArray mutableCopy; mArray sortUsingDescriptors:NSArray arrayWithObjects:sortWithSex, nil; NSLog("*mArray*%",mArray); /使用數(shù)組排序方法傳入數(shù)組中兩個元素比較的方法名 /不可變數(shù)組排序 /按照自定義排序規(guī)范(姓名) NSArray *resultWithNameArray = perArray sortedArrayUsingSelector:selector(compareByAge:); NSLog("%",resultWithNameArray); NSArray *rrr =perArray sortedArrayUsingSelector:selector(compareByName:); NSLog("rrrr*%",rrr);+(instancetype)personWithName:(NSString*)name age:(int)age sex:(NSString*)sex return Pe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論