• [ios] NSSet,NSMutableSet[zhuan]


    集合(set)是一组单值对象,它可以是固定的(NSSet)、也可以是可变的(NSMutableSet)。集合可以比较、计算交集、并集,可变集合还可以有查找、添加、删除。

    二、常用方法

    #import <Foundation/Foundation.h>

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

    {

        NSAutoreleasePool*pool=[[NSAutoreleasePool alloc]init];

        //集合比较、修改

        NSSet *set1=[NSSet setWithObjects:@"s1",@"s2",@"s3",@"s4",nil];

        NSMutableSet *set2=[NSMutableSet setWithObjects:@"s1",@"s2",@"s3",@"s4",nil];

        NSLog(@"List set1");

        for (NSString *element in set1) {

            NSLog(@"%@",element);

        }

        if ([set1 isEqualToSet:set2]) {

            NSLog(@"set1 is equal to set set2");

        } else {

            NSLog(@"set1 is not equal to set set2");

        }

        if ([set1 containsObject:@"s1"]) {

            NSLog(@"set1 contains s1");

        } else {

            NSLog(@"set1 not contains s1");

        }

        [set2 addObject:@"s5"];

        [set2 removeObject:@"s3"];

        NSLog(@"List set2");

        for (NSString *element in set2) {

            NSLog(@"%@",element);

        }

        //集合交集、并集

        NSMutableSet *set3;

        set3=[NSMutableSet setWithObjects:@"s1",@"s3",@"s5",nil];

        [set3 intersectSet:set1];

        NSLog(@"135 intersectSet 1234");

        for (NSString *element in set3) {

            NSLog(@"%@",element);

        }

        set3=[NSMutableSet setWithObjects:@"s1",@"s3",@"s5",nil];

        [set3 unionSet:set1];

        NSLog(@"135 unionSet 1234");

        for (NSString *element in set3) {

            NSLog(@"%@",element);

        }

        [pool drain];

        return 0;

    }

    setWithObjects创建包含给定的对象列表的集合
    + (id)setWithObjects:(id)firstObj ...

    isEqualToSet比较两个集合是否相等
    - (BOOL)isEqualToSet:(NSSet *)otherSet

    containsObject判断给定的对象是否在集合中
    - (BOOL)containsObject:(id)anObject

    addObject给集合添加一个对象,如果已有这个对象则不会添加
    - (void)addObject:(id)object

    removeObject删除集合中给定的对象
    - (void)removeObject:(id)anObject

    intersectSet取两个集合的交集,如果接收集合中的成员不是给定集合的成员,则从接受集合中删除这个成员。
    - (void)intersectSet:(NSSet *)otherSet

    unionSet取两个集合的并集,如果给定集合中的成员不是接收集合的成员,则将这个成员添加到接收集合中。
    - (void)unionSet:(NSSet *)otherSet

    三、NSSet的全部方法

    Creating a Set
    + set
    + setWithArray:
    + setWithObject:
    + setWithObjects:
    + setWithObjects:count:
    + setWithSet:
    – setByAddingObject:
    – setByAddingObjectsFromSet:
    – setByAddingObjectsFromArray:
    Initializing a Set
    – initWithArray:
    – initWithObjects:
    – initWithObjects:count:
    – initWithSet:
    – initWithSet:copyItems:
    Counting Entries
    – count
    Accessing Set Members
    – allObjects
    – anyObject
    – containsObject:
    – filteredSetUsingPredicate:
    – makeObjectsPerformSelector:
    – makeObjectsPerformSelector:withObject:
    – member:
    – objectEnumerator
    – enumerateObjectsUsingBlock:
    – enumerateObjectsWithOptions:usingBlock:
    – objectsPassingTest:
    – objectsWithOptions:passingTest:
    Comparing Sets
    – isSubsetOfSet:
    – intersectsSet:
    – isEqualToSet:
    – valueForKey:
    – setValue:forKey:
    Creating a Sorted Array
    – sortedArrayUsingDescriptors:
    Key-Value Observing
    – addObserver:forKeyPath:options:context:
    – removeObserver:forKeyPath:context:
    – removeObserver:forKeyPath:
    Describing a Set
    – description
    – descriptionWithLocale:

    四、NSMutableSet的全部方法

    Creating a Mutable Set
    + setWithCapacity:
    – initWithCapacity:
    Adding and Removing Entries
    – addObject:
    – filterUsingPredicate:
    – removeObject:
    – removeAllObjects
    – addObjectsFromArray:
    Combining and Recombining Sets
    – unionSet:
    – minusSet:
    – intersectSet:
    – setSet:

  • 相关阅读:
    adb(Android Debug Bridge)安装使用教程
    Python3+smtplib+poplib+imaplib实现发送和收取邮件(以qq邮箱为例)
    Python3组播通信编程实现教程(发送者+接收者)
    Python3+ssl实现加密通信
    openssl实现双向认证教程(服务端代码+客户端代码+证书生成)
    VCG(VisualCodeGrepper)安装使用教程
    APP安全防护基本方法(混淆/签名验证/反调试)
    Android Studio打包生成APK教程
    Android Studio向项目添加C/C++原生代码教程
    Android AES加密报错处理:javax.crypto.IllegalBlockSizeException: error:1e00007b:Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH
  • 原文地址:https://www.cnblogs.com/jinjiantong/p/3023284.html
Copyright © 2020-2023  润新知