NSSet、NSMutableSet基本用法

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^

我要捐赠: 点击捐赠

Cocos2d-X源码下载:点我传送

游戏官方下载:http://dwz.cn/RwTjl

游戏视频预览:http://dwz.cn/RzHHd

游戏开发博客:http://dwz.cn/RzJzI

游戏源码传送:http://dwz.cn/Nret1

在Foundation框架中,提供了NSSet类,它是一组单值对象的集合,且NSSet实例中元素是无序,同一个对象只能保存一个。

一.不可变集合NSSet

1.NSSet的初始化

创建一个集合

NSSet *set1 = [[NSSet alloc] initWithObjects:@"one", @"two", nil];

通过数组的构建集合

NSArray *array = [NSArrayWithObjects:@"1", @"2", @"3", nil];

NSSet *set2 = [[NSSet alloc] initWithArray:array];

通过已有集合构建集合

NSSet *set3 = [[NSSet alloc] initWithSet:set2];

2.NSSet常用方法

集合中对象的个数

int count = [set3 count];

以数组的形式返回集合中所有的对象

NSArray *allObjects = [set3 allObjects];

返回集合中的任意一个对象

id object = [set3 anyObject];

判断两个集合的元素中有包含的对象,包含返回YES,否则为NO

BOOL isContain = [set4 containsObject:@"2"];

判断两个集合的元素是否有相等的对象,存在返回YES,否则为NO

BOOL isIntersect = [set4 intersectsSet:set2];

判断两个集合的元素是否完全匹配,匹配返回YES,否则为NO

BOOL isEqual = [set4 isEqualToSet:set5];

集合4是否是集合5的子集合,如果是返回YES,否则为NO

BOOL isSubset = [set4 isSubsetOfSet:set5];

创建一个新的集合2,集合2有两个对象

NSSet *set1 = [NSSet setWithObjects:@"a",nil];

NSSet *set2 = [set1 setByAddingObject:@"b"];

通过已有的两个集合,创建新的一个集合

NSSet *set7 = [NSSet setWithObjects:@"a",nil];

NSSet *set8 = [NSSet setWithObjects:@"z",nil];

NSSet *set9 = [set7 setByAddingObjectsFromSet:set8];

通过已有的集合和数组对象,创建一个新的集合

NSArray *array = [NSArray arrayWithObjects:@"a",@"b",@"c",nil];

NSSet *set10 = [NSSet setWithObjects:@"z",nil];

NSSet *set11 = [set10 setByAddingObjectsFromArray:array];

二、可变集合NSMutableSet

常用方法

创建一个空的集合

NSMutableSet *set1 = [NSMutableSet set];

NSMutableSet *set2 = [NSMutableSet setWithObjects:@"1",@"2",nil];

NSMutableSet *set3 = [NSMutableSet setWithObjects:@"a",@"2",nil];

集合2减去集合3中的元素,集合2最后元素只有1个

[set2 minusSet:set3];

集合2与集合3中元素的交集,集合2最后元素只有1个

[set2 intersectSet:set3];

集合2与集合3中的元素的并集,集合2最后元素只有3个

[set2 unionSet:set3];

将空集合1设置为集合3中的内容

[set1 setSet:set3];

根据数组的内容删除集合中的对象

[set2 addObjectsFromArray:array];

[set2 removeObject:@"1"];

[set]2 removeAllObjects];

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^

我要捐赠: 点击捐赠

Cocos2d-X源码下载:点我传送

游戏官方下载:http://dwz.cn/RwTjl

游戏视频预览:http://dwz.cn/RzHHd

游戏开发博客:http://dwz.cn/RzJzI

游戏源码传送:http://dwz.cn/Nret1

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-30 09:50:02

NSSet、NSMutableSet基本用法的相关文章

NSArray,NSMutable和NSSet,NSMutableSet和NSDictionary,NSMutableDictionary用法

开始编写应用程序的代码时,可以利用大量的 Objective-C 框架.其中,为所有应用程序提供基本服务的 Foundation 框架尤为重要.Foundation 框架包括表示基本数据类型的值类(如字符串和数字)以及用于储存其他对象的集 (collection) 类.ToDoList 应用程序中的大量代码都可以依靠值类和集类来编写. 值对象 Foundation 框架提供了为字符串.二进制数据.日期与时间.数字以及其他值产生值对象的类. 值对象是指封装了基本值(属于 C 数据类型)且提供与该值

Objective-C NSSet&NSMutableSet以及CountedSet

NSSet说实话,对这个类的应用,还不知道到底什么时候会用到,先过一遍脑子吧,以后有需要用到的时候,不至于陌生! #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //创建4个NSNumber对象 NSNumber *obj1 = [NSNumber numberWithInt:10]; NSNumber *obj2 = [NSNumber numberW

Objective-C之集合对象(NSSet,NSMutableSet,NSIndexSet)

NSArray:有序的集合,NSSet:无序的集合,散列存储. 但是NSSet保证数据的唯一性.当插入相同的数据时,不会有任何效果.从内部实现来说是hash表.NSMutableSet是NSSet的子类,是NSSet的可变形式. NSSet.NSMutableSet NSSet的使用[NSSet setWithSet:(NSSet *)set]; 用另外一个set对象构造[NSSet setWithArray:(NSArray *)array];用数组构造[NSSet setWithObject

NSSet NSMutableSet的简单使用

//创建一个带多个参数的 NSSet *set=[NSSet setWithObjects:@"hello",@"hai", nil]; /* 所有 [set allObjects]; 随机一个 [set anyObject]; */ NSLog(@"set===%@",[set allObjects]); //创建一个可变的Set NSMutableSet *set2=[NSMutableSet set]; //添加元素 //  [set2 a

NSDictionary NSMutableDictionary NSSet NSMutableSet

//description只是返回了一个字符串 //    [person description]; //        //如果想要打印需要NSLog //    NSLog(@"%@", [person description]);         //打印一个对象,实质打印的是description返回的字符串,如果没有重写description方法,系统默认打印<类名:指针[CDATA[]]> //    NSLog(@"%@", person

【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 String 开头的方法; // init 开头方法创建字符串 unichar data[5] = {97, 98, 99, 100, 101}; NSString * str = [[NSString alloc] initWithCharacters : data length : 5]; // str

[OC Foundation框架 - 21] NSSet集合 &amp; 集合之间的转换

A.NSSet 跟NSArray一样,不可变 NSArray 自然顺序 NSSet是无序的 NSSet不允许存入重复元素,可以用来过滤重复元素 也有可变的NSMutableSet B.集合转换 1 // 1.NSArray 转换成 NSMutableArray 2 NSArray *array = @[@"one", @"two", @"three"]; 3 NSMutableArray *muArray = [NSMutableArrayarr

OC -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)

//一: 迭代器 // 数组 NSArray *arr= @[@"1",@"2",@"3",@"4",@"5"]; NSEnumerator *enumerator = [arr objectEnumerator]; NSString *str = nil; while (str = [enumerator nextObject]) { NSLog(@"%@",str); } // 字典

NSArray,NSDictionary,NSSet总结

-学习笔记,以备以后查询 ------干货分割线------------------- -NSArray 1.初始化.取值等基础操作 -NSArray 是不可变数组,一旦创建完成就不能够对数组进行,添加,删除等操作 NSArray * array = [[NSArray alloc] init]; NSArray * array1 = [NSArray                        arrayWithObjects:@"one",@"two",@&q