【OC学习-20】NSSet集合对象初始化以及常用操作方法归纳

集合的初始化以及操作方法和NSString、NSArray、NSDictionary等都很类似,很多方法写几遍就能了解意思并上手使用,不建议全部记忆。

        //集合就是一组无序的元素,但里面元素不可重复
        //集合也分为不变和可变

        //不变集合
        //初始化,直接复制、通过array传递或者通过已有的set传递等
        NSSet *set1=[[NSSet alloc]initWithObjects:@"1",@"2",@"3", nil];
        NSArray *arr1=[NSArray arrayWithObjects:@"1",@"2",@"3",nil];
        NSSet *set2=[NSSet setWithArray:arr1];
        NSSet *set3=[NSSet setWithSet:set1];

        //高级初始化,就是从已有的集合+对象/集合/数组再生成一个新的
        NSSet *set4=[set3 setByAddingObject:@"4"];//复制了set3并新增了一个对象
        NSSet *set5=[set3 setByAddingObjectsFromSet:set1];
        NSSet *set6=[set3 setByAddingObjectsFromArray:arr1];

        //集合的一些方法
        //集合个数
        int count=[set3 count];
        //把集合中元素变成数组赋值给新的数组
        NSArray *arr2=[set3 allObjects];
        //返回集合中任意,任意一个对象
        id obj=[set3 anyObject];
        //集合中是否包含某对象
        BOOL test1=[set3 containsObject:@"1"];
        //两个集合是否有相同对象
        BOOL test2=[set3 intersectsSet:set2];
        //两个集合是否相同
        BOOL test3=[set3 isEqualToSet:set2];
        //一个集合是否是另一个的子集
        BOOL test4=[set3 isSubsetOfSet:set2];

        //可变集合
        //可变集合的初始化,大同小异
        NSMutableSet *mset1=[NSMutableSet setWithObjects:@"1",@"2",@"3", nil];
        NSMutableSet *mset2=[NSMutableSet setWithArray:arr1];
        NSMutableSet *mset3=[NSMutableSet setWithSet:set1];
        NSMutableSet *mset4=[NSMutableSet set];

        //可变集合的一些方法
        //从一个集合种减去一个集合
        [mset3 minusSet:mset2];
        //两个集合交集
        [mset3 intersectsSet:mset2];
        //两个集合并集
        [mset3 unionSet:mset2];
        //从数组中添加一个对象
        [mset3 addObjectsFromArray:arr1];
        //把一个数组设置为另一个数组的值
        [mset3 setSet:mset2];
        //删除所有对象
        [mset3 removeAllObjects];
        //根据名称删除特定对象
        [mset3 removeObject:@"1"];
时间: 2024-08-10 15:09:17

【OC学习-20】NSSet集合对象初始化以及常用操作方法归纳的相关文章

【OC学习-19】NSDictionary字典对象的初始化以及常用操作方法归纳

字典主要特征是一对一对的key和value组成,它的分类以及针对元素的操作和NSString以及NSArray的都差不多.重点在于了解一遍,具体做项目时再加深理解. //不可变字典 //初始化字典,一般key值是字符串对象.空值用NSNull对象表示 NSDictionary *dic1=[NSDictionary dictionaryWithObjects:@"value1" forKeys:@"key1"]; NSDictionary *dic2=[NSDict

【OC学习-18】NSArray的初始化以及常用数组操作方法简单归纳

数组也分成可变和不可变,这个和NSString一样,初始化的方法也类似,对元素的操作也类似,具体如下. 多练习几遍,知道每个代表什么意思即可.开发项目时再加深印象. //不可变数组 //数组的元素只能是对象,如果是int和float的话,就用NSNumber转换一下才能用 //初始化的几种方式,可以一个元素.多个元素.从已有组复制.从文件.网址等 NSArray *arr1=[NSArray arrayWithObject:@"hello"]; NSArray *arr2=[NSArr

【OC学习-28】自定义对象的归档和解归档:例子说明以及简单总结

对对象进行归档,和对对象进行拷贝差不多路数,也就是需要协议,之前的时对NSString和NSNumber这些对象为什么没有归档协议?因为它们自带了. 所以如果我们要对自定义的对象(而不是Foundation里默认的对象)进行归档的话就需要引入归档协议<NSCoding>. 举例:声明一个User类,然后创建一个对象user1,把这个user1进行归档,然后把归档后的文件解归档到user2中,看看是否是原先的那些数据. (1)User.h #import <Foundation/Found

(转载)OC学习篇之---数组对象的引用计数问题和自动释放池的概念

之前一片文章中我们介绍了OC中的两个关键字 @property 和 @synthesize 的使用的使用,今天我们来看一下OC中数组对象在是如何处理对象元素的引用计数问题的,同时介绍一下自动释放池的相关概念 一.数组对象是如何处理对象元素的引用计数问题 1 // 2 // main.m 3 // 26_NSArrayMemeryManager 4 // 5 // Created by jiangwei on 14-10-12. 6 // Copyright (c) 2014年 jiangwei.

OC学习篇之---数组对象的引用计数问题和自动释放池的概念

之前一片文章中我们介绍了OC中的两个关键字@property和@synthesize的使用的使用: http://blog.csdn.net/jiangwei0910410003/article/details/41925967 今天我们来看一下OC中数组对象在是如何处理对象元素的引用计数问题的,同时介绍一下自动释放池的相关概念 一.数组对象是如何处理对象元素的引用计数问题 // // main.m // 26_NSArrayMemeryManager // // Created by jian

OC学习总结5 属性,初始化,类别,协议

属性的实现 成员变量只能在类内部使用,属性是可以被外界访问的. 1.属性的声明 #import <Foundation/Foundation.h> @interface QYPerson : NSObject { NSString *_name; } //@property是编译指令,帮助直接生成setter和getter方法,以及成员变量 @property (readonly, nonatomic) NSString *identify; @property (nonatomic) NSS

OC学习篇之---总结和学习目录

今天终于把OC的基础知识学习完了,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.下面就是这次学习OC的目录教程,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请OC老鸟来喷~~ 1.OC学习篇之---概述 2.OC学习篇之---第一个程序HelloWorld 3.OC学习篇之---类的定义 4.OC学习篇之---类的初始化方法和点语法的使用 5.OC学习篇之---类的三大特性(封装,继承,多态) 6.OC学习篇之[email protected]关键

OC学习16——对象归档

转载自  OC学习篇之---归档和解挡 OC中的归档就是将对象写入到一个文件中,Java中的ObjectInputStream和ObjectOutputStream来进行操作的.当然在操作的这些对象都是需要实现一个接口:Serializable,同样的OC中操作的对象也是需要实现一个协议的,后面会说到. 一.已有类型的归档和解档 首先来看一个简单的例子: 1 // 2 // main.m 3 // 33_ObjectToFile 4 // 5 // Created by jiangwei on

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