NSSet NSArray的区别 实际用法 IOS

转载请说明:(谢谢)

http://blog.csdn.net/a21064346/article/details/8055797

点击打开链接

最近在做一个项目,对数据处理这块有一点心得。

如何在添加大量数据时,对数据对象进行筛选只做到数据对象添加一次?

那么你脑子中,就应该有一个 集合,数组的概念了。(NSSet,NSArray我是这么来理解的)。

他们都是一个可以装载对象的容器。

前者可以保证加进来以后的对象唯一,通过hash查询快速,但是无序,杂乱不能确定特定加入之后对象的位置。

后者可以保证装载对象的位置,objectAtIndex方法来取出该位置的对象。还有一些排序的方法,过滤出一个新的数组,但是查找不方便,而且有重复的对象。


那么既想要 前者的唯一,又想要后者的 有序且位置固定,有什么办法吗?


答案是肯定的。


set,和array 都有枚举出所有对象的方法,但是我们这里不用枚举。(数量少,方便快捷,数量巨大会消耗很多时间)。

 NSMutableSet * firstname = [NSMutableSet setWithCapacity:1];
    NSArray *fir = [NSArray arrayWithArray:[firstname allObjects]];
    if ([fir count]>0) [_dictionaryCombine setValue:fir forKey:@"firstname"];

set有一个allobjects 的方法,他得到的是一个array(内涵所有对象)。

我们再将它赋予给array标记,对fir进行排序,过滤操作即可。

 fir = [fir filteredArrayUsingPredicate:(NSPredicate *)]



这样我们就快捷便利的 将数据 游走与set(不支持index方法) 与array之间。并且可以随时访问到index数据。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值