zoukankan      html  css  js  c++  java
  • Object-C学习之NSSet和NSMutableSet

    转自:http://blog.csdn.net/likandmydeer/article/details/7939749

    一、简介

    集合(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:

  • 相关阅读:
    nyoj 110 剑客决斗
    nyoj 16 矩形嵌套
    nyoj 17 单调递增最长子序列
    nyoj 37 回文字符串
    nyoj 44 子串和
    nyoj 36 最长公共子序列
    使用Broadcast实现android组件之间的通信 分类: android 学习笔记 2015-07-09 14:16 110人阅读 评论(0) 收藏
    ubuntu中安装samba 分类: linux 学习笔记 ubuntu 2015-07-07 16:14 46人阅读 评论(0) 收藏
    ubuntu中安装eclipse 分类: android ubuntu linux 学习笔记 2015-07-07 10:19 75人阅读 评论(0) 收藏
    ubuntu中安装jdk 分类: java 学习笔记 linux ubuntu 2015-07-06 17:49 74人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/LCGIS/p/3193417.html
Copyright © 2011-2022 走看看