亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS集合NSSet與NSMutableSet知識點

2019-11-14 18:40:26
字體:
來源:轉載
供稿:網友

 

NSSet在實際應用中與NSArray區別不大,但是如果你希望查找NSArray中的某一個元素,則需要遍歷整個數組,效率低下。而NSSet在查找某一特定的元素的時候則是根據hash算法直接找到此元素的位置,效率高。 NSSet是一個無序的,管理對個對象的集合類,最大特點是集合中不允許出現重復對象,和數學上的集合含義是一樣的。除了無序,不許重復,其他功能和NSArray是一樣的;需要注意的是:NSSet,NSArray里面只能添加cocoa對象,如果需要加入基本數據類型(int,float,BOOL,double等),需要將數據封裝成NSNumber類型。主要是一些常見的操作,別外一些操作見其相應的文檔,下面的代碼部分還運用的第三方插件BlocksKit相結合;

1:NSSet一些常見的操作

NSSet *newSet=[NSSet setWithObjects:@"wujy",@"VEVb",@"age",nil];    NSLog(@"set的個數為:%ld",[newSet count]);        //不會按上面增加的順序輸入 所以NSSET是沒有順序    NSEnumerator *enumeratorset=[newSet objectEnumerator];    for (NSObject *obj in enumeratorset) {        NSLog(@"key為:%@",obj);    }        //是否存在    BOOL isExict=[newSet containsObject:@"wujy"];    NSLog(@"是否存在:%d",isExict);        //返回任意一個元素    NSString *anyObje=[newSet anyObject];    NSLog(@"返回任意一個元素:%@",anyObje);        //判斷是否包含這個元素 并還回    NSObject *memberObj=[newSet member:@"age"];    if (memberObj) {        NSLog(@"存在元素(age):%@",memberObj);    }        //簡便創建nsset    NSSet *twoSet=[[NSSet alloc] initWithArray:@[@2,@10,@12,@"wujy"]];        //判斷兩個nsset是否相等    BOOL isEaual=[newSet isEqualToSet:twoSet];    NSLog(@"判斷兩個nsset是否相等(0):%d",isEaual);        //判斷兩個nsset是否交集    BOOL isInterSects=[newSet intersectsSet:twoSet];    NSLog(@"判斷兩個nsset是否交集(1):%d",isInterSects);        //Blocks        NSSet *blockSet=[[NSSet alloc]initWithObjects:@1,@2,@3,@4,@5,@6,nil];    //遍歷    [blockSet bk_each:^(id obj) {        NSLog(@"block遍歷的值為:%@",obj);    }];        //過濾    NSSet *selectSet=[blockSet bk_select:^BOOL(id obj) {        BOOL select=[obj intValue]>3?YES:NO;        return select;    }];    NSLog(@"過濾后的nsset(6,5,4):%@",selectSet);        //過濾 只在第一個符合條件時就停止    NSSet *matchSet=[blockSet bk_match:^BOOL(id obj) {        BOOL select=[obj intValue]<4?YES:NO;        return select;    }];    NSLog(@"matchSet過濾后的nsset(3):%@",matchSet);        //取反過濾    NSSet *rejectSet=[blockSet bk_reject:^BOOL(id obj) {        BOOL select=[obj intValue]<4?YES:NO;        return select;    }];    NSLog(@"取反過濾后的nsset(6,5,4):%@",rejectSet);        //對各個項進行處理    NSSet *mapSet=[blockSet bk_map:^id(id obj) {        return @([obj intValue]+1);    }];    NSLog(@"修改后的值為(7,3,6,2,5,4):%@",mapSet);        //是否符合條件 返回bool    BOOL isSelected=[blockSet bk_any:^BOOL(id obj) {        BOOL select=[obj intValue]>3?YES:NO;        return select;    }];    NSLog(@"%d符合條件1",isSelected);        //判斷是否所有的項都符合這個條件    BOOL allSelected=[blockSet bk_all:^BOOL(id obj) {        BOOL select=[obj intValue]>2?YES:NO;        return select;    }];    NSLog(@"%d符合條件0",allSelected);        //判斷是否所有的項都不符合這個條件    BOOL noneSelected=[blockSet bk_none:^BOOL(id obj) {        BOOL select=[obj intValue]>50?YES:NO;        return select;    }];    NSLog(@"%d符合條件1",noneSelected);

 

2:NSMutableSet一些常見的操作

 

    //創建    NSMutableSet *mutableSet=[[NSMutableSet alloc]initWithCapacity:5];    [mutableSet addObject:@1];    [mutableSet addObjectsFromArray:@[@2,@3,@4]];    NSLog(@"增加后的NSMutableSet(3,2,1,4):%@",mutableSet);        //把nsset增加進去    [mutableSet unionSet:[NSSet setWithObjects:@5,@6,nil]];    NSLog(@"增加后的NSMutableSet(3,6,2,5,1,4):%@",mutableSet);        //去除元素    [mutableSet removeObject:@5];    NSLog(@"去除后的元素(3,6,2,1,4):%@",mutableSet);        //刪除nsset里面的    [mutableSet minusSet:[NSSet setWithObjects:@1,@2,nil]];    NSLog(@"去除后nsset的元素(3,6,4):%@",mutableSet);        //nsset轉化成nsmutableset    NSSet *newSet=[NSSet setWithObjects:@10,@11,@12, nil];    NSMutableSet *newMutableSet=[NSMutableSet set];    [newMutableSet setSet:newSet];    NSLog(@"轉換后的mutableset值為(12,10,11):%@",newMutableSet);        //Blocks    //過濾    NSMutableSet *blockMutableSet=[[NSMutableSet alloc]initWithObjects:@20,@23,@25,nil];    [blockMutableSet bk_performSelect:^BOOL(id obj) {        BOOL select=[obj intValue]>22?YES:NO;        return select;    }];    NSLog(@"過濾后的nsmutableset(25,23):%@",blockMutableSet);        //取反過濾    [blockMutableSet bk_performReject:^BOOL(id obj) {        BOOL select=[obj intValue]>24?YES:NO;        return select;    }];    NSLog(@"取反過濾后的nsmutableset(23):%@",blockMutableSet);        //對項進行修改    [blockMutableSet bk_performMap:^id(id obj) {        return @([obj intValue]+1);    }];    NSLog(@"修改后的nsmutableset(24):%@",blockMutableSet);

 

3:指數集合(索引集合)NSIndexSet

//指數集合(索引集合)NSIndexSet NSIndexSet * indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 3)]; //集合中的數字是123//根據集合提取數組中指定位置的元素NSArray * array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];NSArray * newArray = [array objectsAtIndexes:indexSet]; //返回@"two",@"three",@"four"//可變指數集合NSMutableIndexSetNSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc] init];[indexSet addIndex:0][indexSet addIndex:3];[indexSet addIndex:5];//通過集合獲取數組中指定的元素NSArray *array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six", nil];NSArray *newArray = [array objectsAtIndexes:indexSet]; //返回@"one",@"four",@"six"

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产小视频国产精品| 91美女片黄在线观看游戏| 日本高清+成人网在线观看| 日本视频久久久| 超碰91人人草人人干| 伊人精品在线观看| 国内精品国产三级国产在线专| 福利精品视频在线| 久久久久久国产精品| 亚洲丁香婷深爱综合| 亚洲 日韩 国产第一| 亚洲欧美国产日韩中文字幕| 精品久久香蕉国产线看观看亚洲| 亚洲日韩欧美视频一区| 国产精品福利无圣光在线一区| 亚洲最新av在线网站| 日本久久久久亚洲中字幕| 国产精品久久一区| 日韩免费高清在线观看| 久久久久久久一| 国产成人精品免高潮费视频| 欧美激情精品久久久久久变态| 日韩大陆欧美高清视频区| 久久久久久久久久久91| 国产成人精品午夜| 亚洲美女视频网站| 欧美最顶级丰满的aⅴ艳星| 国产精品成人免费视频| 久久久久999| 日本三级韩国三级久久| 亚洲人成网站在线播| 久久精品国产精品亚洲| 久久久精品久久久| 亚洲性生活视频| 亚洲午夜国产成人av电影男同| 欧美老肥婆性猛交视频| 欧美日韩国产影院| 日韩精品免费看| 91精品视频免费| 久久精品国产成人精品| 日韩欧美在线视频| 中文字幕亚洲综合久久筱田步美| 成人h视频在线观看播放| 久久99热这里只有精品国产| 日韩在线播放av| 国产精品第2页| 亚洲欧美资源在线| 91中文精品字幕在线视频| 久久色精品视频| 亚洲国产精品va在看黑人| 国产v综合ⅴ日韩v欧美大片| 亚洲国产成人精品久久| 国产午夜精品全部视频在线播放| 97视频在线看| 国语自产偷拍精品视频偷| 日韩最新av在线| 国产精品流白浆视频| 亚洲free嫩bbb| 国产一区二区三区日韩欧美| 色综合久久久久久中文网| 蜜臀久久99精品久久久无需会员| 欧洲中文字幕国产精品| 久久97精品久久久久久久不卡| 欧美在线一区二区视频| 一夜七次郎国产精品亚洲| 中文字幕欧美专区| 深夜福利国产精品| 国产精品黄页免费高清在线观看| 久久九九精品99国产精品| 亚洲欧美日韩一区二区在线| 亚洲色图五月天| 日本亚洲欧洲色α| 久久精品国产免费观看| 国产精品视频一| 亚洲最大的成人网| 亚洲精品成人久久电影| 日韩欧美亚洲范冰冰与中字| 国产精品亚洲视频在线观看| 成年无码av片在线| 亚洲天堂成人在线| 亚洲自拍欧美色图| 国产精品久久久久久av下载红粉| 俺也去精品视频在线观看| 国产精品99久久久久久白浆小说| 91精品国产综合久久香蕉| 欧美午夜电影在线| 成人有码在线视频| 亚洲精品中文字幕有码专区| 亚洲男人天堂2023| 欧美伊久线香蕉线新在线| 亚洲性生活视频| 中文字幕av一区二区| 亚洲欧洲日产国码av系列天堂| 欧美大片欧美激情性色a∨久久| 亚洲人成电影在线播放| 免费97视频在线精品国自产拍| 亚洲色图校园春色| 庆余年2免费日韩剧观看大牛| 成人网在线观看| 亚洲精品电影网在线观看| 日韩欧美在线视频免费观看| 国产狼人综合免费视频| 久久香蕉频线观| 在线观看中文字幕亚洲| 亚洲欧美中文日韩在线| 国产精品日韩久久久久| yw.139尤物在线精品视频| 亚洲精品在线观看www| 中文字幕不卡在线视频极品| 日韩成人av网| 亚洲久久久久久久久久久| 911国产网站尤物在线观看| 最近更新的2019中文字幕| 亚洲福利视频二区| 日韩免费观看网站| 久久久久久国产免费| 亚洲视频在线观看免费| 高清一区二区三区日本久| 欧美黄色成人网| 亚洲美女喷白浆| 亚洲黄在线观看| 欧美黑人一区二区三区| 久久最新资源网| 久久99精品视频一区97| 九九九久久久久久| 成人在线中文字幕| 国产区亚洲区欧美区| 456亚洲影院| 国产精彩精品视频| 国产97人人超碰caoprom| 亚洲精品短视频| 91大神福利视频在线| 亚洲国产中文字幕在线观看| 久久久成人精品视频| 91牛牛免费视频| 色噜噜国产精品视频一区二区| 国产精品va在线播放| 国产精品日日摸夜夜添夜夜av| 国产亚洲日本欧美韩国| 日韩女优在线播放| 国产亚洲精品久久| 亚洲欧洲日产国码av系列天堂| 懂色av影视一区二区三区| 久久精品91久久久久久再现| 91成品人片a无限观看| 亚洲成人中文字幕| 久久久久在线观看| 丁香五六月婷婷久久激情| 亚洲人线精品午夜| 精品久久久久久久久中文字幕| 日韩国产激情在线| 久久综合五月天| 欧美高清一级大片| 97在线视频精品| 97精品国产97久久久久久免费| 久久久999国产| 亚洲天堂精品在线| 国产91精品久久久| 国产精品亚洲美女av网站| 久久免费视频网站| 日韩精品中文字幕在线| 日本高清不卡的在线| 亚洲电影在线观看| 欧美另类第一页|