iOS開發OC基礎:OC集合NSSet、NSMutableSet以及NSCountedSet的基本方法的使用

集合大家都學過,就是裏面的元素具有:確定性、無序性、互異性。

在OC中的集合主要理解的是後面的兩個性質。

另外,OC中的NSCountedSet集合可以統計元素在集合中出現的次數,是數學中集合的擴展。

全部源代碼爲:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        //集合的特點
        //1.集合是無序的
        //2.集合中的元素都是互異的,不可以重複,如果有重複的元素,則識別爲一個元素
        
        //1.創建一個NSSet對象
        NSSet *set = [[NSSet alloc] initWithObjects:@"aa", @"bb", @"cc", @"dd", @"aa", nil];
        NSLog(@"set: %@", set);
        //2.求集合元素個數
        NSUInteger count = [set count];
        NSLog(@"count = %lu", count);
        
        //3.獲得集合的元素
        //(1)獲得全部元素
        NSArray *members = [set allObjects];
        NSLog(@"%@", members);
        //(2)獲得單一元素
        //anyObject隨意取一個元素
        NSString *str1 = [set anyObject];
        NSString *str2 = [set anyObject];
        NSString *str3 = [set anyObject];
        NSString *str4 = [set anyObject];
        NSLog(@"str = %@,%@,%@,%@", str1, str2, str3, str4);
        
        //4.判斷集合中是否包含某個對象。
        BOOL have = [set containsObject:@"cc"];
        NSLog(@"have = %d", have);
        
        
        //NSMutableSet
        //1.創建一個NSMutableSet對象
        NSMutableSet *mSet = [[NSMutableSet alloc] initWithObjects:@"aa", @"bb", @"cc", @"cc", @"dd", nil];
        //2.添加@"ff"到mSet集合中
        [mSet addObject:@"ff"];
        NSLog(@"mSet = %@", mSet);
        //3.移除掉@"cc"
        [mSet removeObject:@"cc"];
        NSLog(@"remove:%@", mSet);
        
        
        //NSCountedSet
        NSCountedSet *cSet = [[NSCountedSet alloc] initWithObjects:@"aa", @"bb", @"cc", @"cc", @"dd", @"cc", @"dd", nil];
        NSLog(@"cSet:%@", cSet);
        //移除@"cc",
        //removeObject: 對於NSCountedSet對象而言,移除只能移除一個對象,而對於NSMutableSet而言,移除會將所有相同的對象全部移除。
        [cSet removeObject:@"cc"];
        NSLog(@"remove:%@", cSet);
        //添加@"ff"
        //addObject:對於NSCountedSet對象而言,添加對象會增加對象在集合中出現的次數,而對於NSMutableSet而言,如果添加的對象已經存在於集合中,則不會再添加。
        [cSet addObject:@"ff"];
        [cSet addObject:@"dd"];
        NSLog(@"add:%@", cSet);
        
        //獲得某個對象在集合中出現的次數
        NSUInteger countInSet = [cSet countForObject:@"dd"];
        NSLog(@"count = %lu", countInSet);
        
        //快速遍歷(快速枚舉)
        for (NSString *element in mSet) {
            NSLog(@"%@", element);
        }
        
    }
    return 0;
}

本文介紹了OC中的基本集合、可變集合、可計數集合的相應的方法,希望對大家的學習有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章