捉襟见肘之NSMutableSet和NSPointerArray
用来学习复习记录,其他优秀的译文,点击这里
一、NSMutableSet
NSMutableSet和NSMutableArray存放数据方式分别是无序和有序,这说明,数组是可以通过index获取对象。
NSMutableSet和NSSet都是集合
她们都有:比较compare 交集instersection 并集union
但是NSMutableSet还可以:查找valueForKey 添加add 删除remove
更多了解复制这里:
http://blog.csdn.net/ally_ideveloper/article/details/7939749
// 这个人写的我比较喜欢,朴实自然1 http://my.oschina.net/u/1782374/blog/380703
1.NSSet和NSMutableSet和数组一样只能添加Cocoa对象,如果需要添加基本数据变成NSNumber
2.集合的查找速度比数组高,例如查找某一个value值,数组遍历,集合hash
NSSet 常用方法总结 +(id)setWithObjects:obj1,obj2,...nil 使用一组对象创建新的集合 -(id)initWithObjects:obj1,obj2,.nil 使用一组对象初始化新分配的集合 -(NSUInteger)count 返回集合成员个数 -(BOOL)containsObject:obj 确定集合是否包含对象 obj -(BOOL)member:obj 确定集合是否包含对象 obj -(NSEnumerator*)objectEnumerator 返回集合中所有对象到一个 NSEnumerator 类型的对象 -(BOOL)isSubsetOfSet:nsset 判断集合是否是NSSet的子集 -(BOOL)intersectsSet:nsset 判断两个集合的交集是否至少存在一个元素 -(BOOL)isEqualToSet:nsset 判断两个集合是否相等 NSMutableSet 常用方法总结 -(id)setWithCapcity:size 创建一个有size大小的新集合 -(id)initWithCapcity:size 初始化一个新分配的集合,大小为size -(void)addObject:obj 添加对象 obj 到集合中 -(void)removeobject:obj 从集合中删除对象 obj -(void)removeAllObjects 删除集合中所有对象 -(void)unionSet:nsset 将nsset的所有元素添加到集合 -(void)minusSet:nsset 从集合中去掉所有的NSSet 的元素 -(void)interectSet:nsset 集合和NSSet 做交集运算
二、NSPointerArray
NSPointerArray类是一个稀疏数组
1.NSPointerArray工作起来与NSMutableArray相似,但可以存储NULL值,通过count获取;
2.可以用NSPointerFunctions对她进行设置,也可用静态函数构造:
+ (NSPointerArray *)strongObjectsPointerArray + (NSPointerArray *)weakObjectsPointerArray
捉襟见肘之NSMutableSet和NSPointerArray的更多相关文章
- NSHashTable NSPointerArray
NSHashTable和NSMapTable能够对持有的对象做strong或weak存储,弱持有weak引用对象,当weak对象释放后会自动从表中移除 http://blog.csdn.net ...
- Cocoa 集合类型:NSPointerArray,NSMapTable,NSHashTable
iOS 中有很多种集合类型,最为常见的可能就 NSArray.NSDictionary.NSSet,但其实还有 NSPointerArray.NSMapTable.NSHashTable 等类型,虽然 ...
- nsmutableset
// // main.m // nsmutableset // // Created by 博博 on 16/1/11. // Copyright (c) 2016年 com.bb. All ...
- IOS集合NSSet与NSMutableSet知识点
NSSet在实际应用中与NSArray区别不大,但是如果你希望查找NSArray中的某一个元素,则需要遍历整个数组,效率低下.而NSSet在查找某一特定的元素的时候则是根据hash算法直接找到此元素的 ...
- NSSet、NSMutableSet基本用法
NSSet.NSMutableSet基本用法 在Foundation框架中,提供了NSSet类,它是一组单值对象的集合,且NSSet实例中元素是无序,同一个对象只能保存一个. 一.不可变集合NSSet ...
- NSSet、NSMutableSet
NSSet和NSArray功能性质一样,用于存储对象,属于集合:只能添加cocoa对象,基本数据类型需要装箱. NSSet . NSMutableSet是无序的集合,在内存中存储方式是不连续的,而NS ...
- OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法
字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...
- NSSet和NSMutableSet 确保数据的唯一性--备
NSSet和NSMutableSet是无序的, 但是它保证数据的唯一性.当插入相同的数据时,不会有任何效果.从内部实现来说是hash表,所以可以常数时间内查找一个数据. 1.NSSet的使用 [NSS ...
- NSDictionary NSMutableDictionary NSSet NSMutableSet
//description只是返回了一个字符串 // [person description]; // //如果想要打印需要NSLog // NSLog(@"%@& ...
随机推荐
- 子Div使用Float后如何撑开父Div
如果想要撑开父元素可以采用以下方法: 方法一: 父元素设置overflow以及zoom,样式如下: 1 <style> 2 #div1{border:1px solid red;ove ...
- 重叠(Overlapping) NAT
当内部网络也使用公网注册地址(或者是外网合法地址)时,如果仍使用标准的静态或者动态NAT转换,则可能使得转换的内网地址与外网中合法地址冲突,使数据包又返回到了本地网络,这肯定是不行的.这时我们就要使用 ...
- java swing模仿随机频谱
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Grap ...
- 【JavaScript】 JSON
1.json 一共就这么几种数据类型 ①,number 和JavaScript的number完全一样 ②,boolean 就是JavaScript的true和false ③,stri ...
- android开发------编写用户界面之相对布局
今天要说的是RelativeLayout.RelativeLayout相对于LinearLayout的主要不同点在于它需要一个参照物. 我们先来看一下官方对这个布局的解释: RelativeLayou ...
- 个人阅读作业——M1/M2总结
~ http://www.cnblogs.com/wx1306/p/4831950.html 在这篇博客中,我提出来一些关于软件工程的问题,但随着这一个学期的即将结束,以及我对软件开发的了解的深入,我 ...
- 第一章:java语言概述与开发环境
前言: 1.程序是什么? 程序是对现实世界的数字化模拟! 2.编程语言是工具,程序的作用就是解决问题! 重要的思路! 该知识点能解决什么问题? 1.语言特性:单继承.多接口! 纯面向 ...
- Oracle之物化视图
来源于:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于 ...
- CSS选择器优先级排列
CSS选择器的效率从高到低做了一个排序: 1.id选择器(#myid) 2.类选择器(.myclassname) 3.标签选择器(div,h1,p) 4.相邻选择器(h1+p) 5.子选择器(ul & ...
- 转 -- linux IO子系统和文件系统读写流程
我们含有分析的,是基于2.6.32及其后的内核. 我们在linux上总是要保存数据,数据要么保存在文件系统里(如ext3),要么就保存在裸设备里.我们在使用这些数据的时候都是通过文件这个抽象来访问的, ...