1. 程式人生 > >NSSet和NSMutableSet基本用法

NSSet和NSMutableSet基本用法

一、概念

名稱為集合,存放著不可重複物件的集合,集合中物件是無序的。

二、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);

以上是對常用方法的說明,如有錯誤,望指正,多謝!!