NSSet和NSMutableSet - By吴帮雷

1、NSSet的使用

[NSSet setWithSet:(NSSet *)set]; 用另外一个set对象构造

[NSSet setWithArray:(NSArray *)array];用数组构造

[NSSet setWithObjects:...]:创建集合对象,并且初始化集合中的数值,结尾必需使用nil标志。

[set count] ; 得到这个结合对象的长度。

[set containsObject:...]: 判断这个集合中是否存在传入的对象,返回Bool值。

[set objectEnumerator]: 将集合放入迭代器。

[enumerator nextObject]:得到迭代器中的下一个节点数据,使用while遍历这个迭代器,方可遍历集合对象中的对象。

[set isEqualToSet:objset]:判断两个集合是否完全相等,返回Bool值。

[set isSubsetOfSet:objset]:判断集合中的所有数据是否都相等与objeset集合中,返回Bool值。

[set allObjects];

NSSet *set = [NSSet setWithObjects:@"25",@"age",@"张三",@"name",@"男",nil];
        NSSet *set1 = [NSSet setWithObjects:@"25",@"age",@"张三",@"name",@"男",@"性别",nil];

        NSLog(@"set count:%lu", [set count]);
        //判断是否含有age字符串
        if([set containsObject:@"age"]) {
            NSLog(@"set包含age");
        }
        //判断set 是否等于set1
        if ([set isEqualToSet:set1]) {
            NSLog(@"set 等于 set1");
        }
        //判断set是否是否是set1的子集合
        if ([set isSubsetOfSet:set1]) {
            NSLog(@"set isSubsetOfSet set1");
        }
        //获取所有set对象
        NSArray *array = [set allObjects];
        NSLog(@"array:%@", array);

        //迭代遍历
        NSEnumerator *enumerator = [set objectEnumerator];
        for (NSObject *object in enumerator) {
            NSLog(@"set1里的对象:%@", object);
        }

2、NSMutableSet的使用

NSMutableSet继承NSSet,它可以使用NSSet的方法。

[NSMutableSet setWithCapacity:6]:创建可变集合对象,并且初始化长度为6。

[set addObject: obj] : 向集合中动态的添加对象。

[set removeObject:obj]:删除集合中的一个对象。

[set removeAllObjects]:删除集合中的所有对象。

[set unionSet:obj]:向集合中添加一个obj集合的所有数据。

[set minusSet:obj]:向集合中删除一个obj集合的所有数据。

[set intersectSet]:向集合中删除一个不包含obj集合的所有数据。

NSMutableSet *muSet = [NSMutableSet setWithCapacity:6];
        [muSet addObject:@"对象1"];
        NSSet *set = [NSSet setWithObjects:@"对象2",@"对象3", @"被企鹅咬了一口", nil];
        //添加set数据
        [muSet unionSet:set];
        for (NSObject *object in muSet) {
            NSLog(@"all nuSet:%@",object);
        }
        NSSet *set1 = [NSSet setWithObjects:@"对象2",@"对象3", nil];

        //在muSet中删除包含set1总数据
        [muSet minusSet:set1];
        for (NSObject *object in muSet) {
            NSLog(@"after minusSet:%@",object); 

此类用到的比较少,但依然要了解下 !

时间: 2024-10-09 20:24:59

NSSet和NSMutableSet - By吴帮雷的相关文章

iOS多线程总览 --By 吴帮雷

在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程.由于在iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面(新版iOS中,使用其他线程更新UI可能也能成功,但是不推荐).iOS中多线程使用并不复杂,关键是如何控制好各个线程的执行顺序.处理好资源竞争问题.常用的多线程开发有三种方式: 1.NSThread 2.NSOperation 3.GCD 三种方式是随着iOS的发展逐渐引入的,所以相比而言后者比前者更加简单易用,并

iOS,开发准备之申请证书 ---by吴帮雷

一.申请真机调试证书 打开iOS Dev Center,选择Sign in,登陆(至少99美元账号),登陆选择Certificates,Identifiers & Profiles --> Identifiers 选择Identifiers->App IDs,开始添加 App ID由用 . 符号分开的两部分组成,在默认情况下,App ID的前缀为你的团队ID,后缀被定义为一个bundle ID的搜索字符串,AppID的每一个部分对你的应用程序都有不同而且很重要的用途 App ID De

iOS - TableViewCell分割线 --By吴帮雷

千万别小看UI中得线,否则你的设计师和测试组会无休止地来找你的!!(如果是美女还好,如果是恐龙....) 在开发中运用最多的是什么,对,表格--TableView,之所以称作表格,是因为他天生带有分割线. 首先系统带的有如下类型: typedef NS_ENUM(NSInteger, UITableViewCellSeparatorStyle) { UITableViewCellSeparatorStyleNone, UITableViewCellSeparatorStyleSingleLine

NSSet和NSMutableSet 确保数据的唯一性--备

NSSet和NSMutableSet是无序的, 但是它保证数据的唯一性.当插入相同的数据时,不会有任何效果.从内部实现来说是hash表,所以可以常数时间内查找一个数据. 1.NSSet的使用 [NSSet setWithSet:(NSSet *)set]; 用另外一个set对象构造[NSSet setWithArray:(NSArray *)array];用数组构造[NSSet setWithObjects:...]:创建集合对象,并且初始化集合中的数值,结尾必需使用nil标志.[set cou

[Objective-C] 010_Foundation框架之NSSet与NSMutableSet

在Cocoa Foundation中的NSSet和NSMutableSet ,和NSArray功能性质一样,用于存储对象属于集合.但是NSSet和NSMutableSet是无序的, 保证数据的唯一性,当插入相同的数据时,不会有任何效果. NSSet 初始化及常用操作 #import "AppDelegate.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIAppli

黑马程序员——Foundation学习笔记(NSSet和NSMutableSet)

==========android培训.ios培训.java培训.期待与您交流========== 一.NSSet: NSSet NSSet里面存储的元素没有顺序,NSArray中的元素有顺序. NSSet *s = [NSSet set]; // 创建一个空的Set,永远是空,不可变. NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose",nil]; NSString *str = [s2 anyObject]; //

NSSet、NSMutableSet

NSSet和NSArray功能性质一样,用于存储对象,属于集合:只能添加cocoa对象,基本数据类型需要装箱. NSSet . NSMutableSet是无序的集合,在内存中存储方式是不连续的,而NSArray是有序集合,在内存中存储位置是连续的. NSSet和我们常用NSArry区别是:在搜索一个元素时NSSet比NSArray效率高,主要是它用到了一个算法hash(哈希).比如你要存储元素A,一个hash算法直接就能直接找到A应该存储的位置:同样,当你要访问A时,一个hash过程就能找到A存

NSSet -- 集合&&NSMutableSet -- 可变集合

// // main.m // OC05-task-03 // // Created by Xin the Great on 15-1-25. // Copyright (c) 2015年 Xin the Great. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here.

NSSet和NSMutableSet

//NSArray 自然顺序 //NSSet是无序的 //注意:这个是最为重要的功能 NSSet中不能够存储重复的数据,可以用它来去除重复的值 NSString * str1 = @"one"; NSString * str2 = @"two"; NSString * str3 = @"three"; NSSet * set = [[NSSet alloc] initWithObjects:str1,str2,str3,str1, nil]; N