转自:http://maccrazy.diandian.com/post/2011-10-09/5671451

NSArray和NSMutableArray无需多说,是线性数组和链表的包装类。

NSSet和NSMutableSet则是无序的, 并且保证唯一性的数据集合。当插入相同的数据时,不会有任何效果。从内部实现来说是hash表,所以可以常数时间内查找一个数据。

创建和插入数据:

查找数据(判断一个object是否在该集合中), n = 10,000

遍历数据

结论很明显了:

如果你只需要保存和遍历一些数据,就选择NSArray,或者元素个数比较小,那么即使需要查找的功能,也不要用NSSet。
只有在元素个数很大,或是需要保证数据唯一性的情况下,使用NSSet。

收藏分享邀请

转载于:https://www.cnblogs.com/zsw-1993/archive/2013/04/17/4880172.html

NSArray与NSSet的区别相关推荐

  1. NSString NSArray NSDictionary NSSet 中的部分方法

    NSString NSArray NSDictionary NSSet 中的部分方法 //1.init     //    NSString  *s1 = [[NSString alloc]init] ...

  2. NSArray与NSSet

    NSArray与NSSet NSArray:有序的集合,存储的元素在一个整块的内存中并按序排列: NSSet:无序的集合,散列存储. 读developer.apple关于NSSet的解释:You ca ...

  3. swift ~ 2020年 swift面试题

     联系人:石虎 QQ:1224614774  昵称: 嗡嘛呢叭咪哄                       QQ群:807236138  群称: iOS 技术交流学习群               ...

  4. iOS 中KVC、KVO、NSNotification、delegate 总结及区别

    iOS 中KVC.KVO.NSNotification.delegate 总结及区别 1.KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属 ...

  5. copy与mutableCopy的区别总结

    1.不可变类型(不管是集合还是非集合),copy结果,不产生新对象,浅拷贝: 不可变类型(不管是集合还是非集合),mutableCopy结果,产生新对象,深拷贝. 2.可变类型(不管是集合还是非集合) ...

  6. iOS学习笔记-retain/assign/strong/weak/copy/mutablecopy/autorelease区别

    readwrite:是可读可写特性,需要生成getter和setter方法: readonly是之都特性,只会生成getter方法,不会生成setter方法,不希望属性在类外改变时候使用: alloc ...

  7. Objective-C学习篇08—NSDictionary与NSSet

    Objective-C学习篇08-NSDictionary与NSSet NSDictionary与NSMutableDictionary NSSet与NSMutableSte 字典 字典:字典分为可变 ...

  8. NSPredicate

    一.简介 NSPredicate指定数据被获取或者过滤的方式,是一个Foundation类. Cocoa框架中的NSPredicate用于指定过滤器的条件(即查询),它的原理和用法都像SQL的WHER ...

  9. zzz KVC/KVO原理详解及编程指南

    前言: 1.本文基本不讲KVC/KVO的用法,只结合网上的资料说说对这种技术的理解. 2.由于KVO内容较少,而且是以KVC为基础实现的,本文将着重介绍KVC部分. 一.简介 KVC/KVO是观察者模 ...

最新文章

  1. for循环执行 mybatis_mybatis sql循环的使用
  2. 台积电5nm来了!谁会是第一个吃螃蟹的人
  3. 沃尔玛牵手Gatik推行自动驾驶试点项目 为客户配送订单
  4. 【背包问题】基于matlab量子免疫克隆算法求解背包问题【含Matlab源码 424期】
  5. 远程登录shell命名sftp_开发好物推荐13强于XShell远程连接FinalSHell
  6. libyuv库简单使用
  7. 黑群晖系统备份与恢复
  8. Word 2016插入公式快捷键
  9. 【C#】基础篇(3) C#实现串口助手,解决中文乱码
  10. CMD指令-连接局域网主机
  11. android 从app跳转到微信小程序和微信没有设置浮动权限 打不开小程序
  12. 基于Domoticz智能家居系统(十三)Domoticz-3.8153在Tiny6410开发板上的移植
  13. 《中国人史纲》读书笔记:第八章、第九章 公元前第六、五世纪
  14. Windows 桌面主题 1.2
  15. CSS3使用一个盒子实现太极图案
  16. 关于4G转wifi路由器模块与4G转有线模块的原理
  17. 一个身份证号能申请多少个微信公众账号?
  18. 解析las文件_点云las文件读取
  19. 初步操作3dmax可编辑多边形建模-做一个杯子
  20. css实现空心文字效果

热门文章

  1. 简单粗暴入门JAVA之方法
  2. 首尾非零正则_推荐收藏一波,工作中常用的正则表达式总结!
  3. cad中填充的剖面线不能被修剪_CAD常用命令:CHAMFER(倒角)
  4. 最详细的Fast RCNN论文笔记
  5. Windows三十年进化史,从Windows 1.0到Windows 10
  6. 软考信息安全工程师备考笔记1:第一章信息安全基础备考要点
  7. java applog_Java Web App: 选择与配置日志库
  8. python的repl模式_如何更改sublimeREPL默认python版本
  9. SpringBoot + AOP 统一处理日志
  10. BootstrapTable冻结表头(二)