NSSet和NSMutableSet基本用法
阿新 • • 發佈:2018-12-10
一、概念
名稱為集合,存放著不可重複物件的集合,集合中物件是無序的。
二、NSSet基本用法
// 初始化集合的幾種方式 NSSet* setArray = [NSSet setWithArray:@[@"mm", @"jj", @"zz"]]; NSSet* setObject = [NSSet setWithObject:@"hello"]; NSSet* setObjects = [NSSet setWithObjects:@"hello", @"world", @"jj", nil]; NSSet* setSets = [NSSet setWithSet:setArray]; // 在原有的基礎上拼接生成新的NSSet NSSet* setAddObj = [setArray setByAddingObject:@"love"]; NSSet* setAddSet = [setObject setByAddingObjectsFromSet:setObjects]; NSSet* setAddArray = [setSets setByAddingObjectsFromArray:@[@"tt", @"yy", @"ss"]]; // 容器中值列印 for (id obj in setArray.objectEnumerator.allObjects) { NSLog(@"當前物件:%@", obj); } BOOL isContain = [setArray containsObject:@"mm"]; // setArray中是否包含物件: "mm" BOOL isEqual = [setObjects isEqualToSet:setArray]; // 兩集合是否相等 BOOL isSubset = [setArray isSubsetOfSet:setObjects]; // setObjects是否是setArray子集合, 子集合setObjects中不僅值要相等,而且個數還要小於或等於前一個集合(setArray)數量 BOOL isIntersects = [setArray intersectsSet:setObjects]; // 返回YES:集合setObjects中至少含有setArray中一個物件
三、NSMutableSet用法
//NSMutableSet初始化集合的其它方式 NSMutableSet* setArray = [[NSMutableSet alloc] initWithArray:@[@"mm", @"jj", @"zz"]]; NSMutableSet* setObjects = [[NSMutableSet alloc] initWithObjects:@"hello", @"world", @"jj", nil]; NSMutableSet* setSets = [NSMutableSet setWithSet:setArray]; [setArray addObjectsFromArray:@[@"11", @"ss", @"jj", @"mm", @"zz"]]; // 新增物件 NSLog(@"%@", setArray); NSMutableSet* setCapacity = [NSMutableSet setWithCapacity:2]; // 預估數量 [setCapacity addObject:@"11"]; // 新增物件 [setCapacity addObject:@"mm"]; // 新增物件 NSLog(@"%@", setCapacity); /** 除錯時可註釋部分程式碼 **/ [setArray intersectSet:setCapacity]; // 生成兩集合的交集 NSLog(@"%@", setArray); [setArray unionSet:setCapacity]; // 生成兩集合的並集 NSLog(@"%@", setArray); [setArray minusSet:setCapacity]; // 生成去除和setCapacity重複元素後的集合 NSLog(@"%@", setArray); [setArray removeAllObjects]; // 刪除所有物件 NSLog(@"%@", setArray);
以上是對常用方法的說明,如有錯誤,望指正,多謝!!