数组中不常用却又好用的方法探索
2015-11-25 00:45
302 查看
博客事由:在开发静态库时,希望能够让自己的接口更加人性化以及实用价值更高,我需要用到一个数组,以及对数组元素是否存在的判断。
以往总是遍历所有元素,于是就想有没有一个方法能够直接判断某个元素是否存在于数组中,于是尝试之下果然发现还是有的。进而想更深层次的挖掘一下数组的一些实用的方法。
(1)这个方法能够直接判断数组是否包含该元素
NSArray *arr =@[@3,@4,@5,@8,@9,@10];
if ([arrcontainsObject:@3])
{
NSLog(@"包含3");
}else
{
NSLog(@"不包含3");
}
(2)这个是利用枚举正遍历而且能够随时停止遍历
[arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,
BOOL *stop){
NSLog(@"array is %d is %@", idx, obj);
if (idx==3) {
*stop = YES;
}
}];
(3)利用枚举的反遍历而且能够随时停止遍历
[arr enumerateObjectsWithOptions:NSEnumerationReverseusingBlock:^(id
obj,NSUInteger idx, BOOL *stop){
NSLog(@"array is %d is %@",idx, obj);
if (idx==3) {
*stop = YES;
}
}];
(4)利用枚举的正遍历(非Block)
NSArray *array = [[NSArray alloc] init];
NSEnumerator *enume = [array objectEnumerator];
id object;
while ((object = [enume nextObject])
!= nil) {
NSLog(@"array is %@",
object);
}
(5) 利用枚举的反遍历(非Block)
NSArray *array = [[NSArray alloc] init];
NSEnumerator *enume =[array reverseObjectEnumerator];
id object;
while ((object = [enume nextObject])
!= nil) {
NSLog(@"array is %@",
object);
}
至于在字典中以及字符串中是否有这些实用的方法有待继续探索
好吧,需要补充一下,上面有的方法是在IOS8以后才能用的,自己没注意,已经被坑了
以往总是遍历所有元素,于是就想有没有一个方法能够直接判断某个元素是否存在于数组中,于是尝试之下果然发现还是有的。进而想更深层次的挖掘一下数组的一些实用的方法。
(1)这个方法能够直接判断数组是否包含该元素
NSArray *arr =@[@3,@4,@5,@8,@9,@10];
if ([arrcontainsObject:@3])
{
NSLog(@"包含3");
}else
{
NSLog(@"不包含3");
}
(2)这个是利用枚举正遍历而且能够随时停止遍历
[arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,
BOOL *stop){
NSLog(@"array is %d is %@", idx, obj);
if (idx==3) {
*stop = YES;
}
}];
(3)利用枚举的反遍历而且能够随时停止遍历
[arr enumerateObjectsWithOptions:NSEnumerationReverseusingBlock:^(id
obj,NSUInteger idx, BOOL *stop){
NSLog(@"array is %d is %@",idx, obj);
if (idx==3) {
*stop = YES;
}
}];
(4)利用枚举的正遍历(非Block)
NSArray *array = [[NSArray alloc] init];
NSEnumerator *enume = [array objectEnumerator];
id object;
while ((object = [enume nextObject])
!= nil) {
NSLog(@"array is %@",
object);
}
(5) 利用枚举的反遍历(非Block)
NSArray *array = [[NSArray alloc] init];
NSEnumerator *enume =[array reverseObjectEnumerator];
id object;
while ((object = [enume nextObject])
!= nil) {
NSLog(@"array is %@",
object);
}
至于在字典中以及字符串中是否有这些实用的方法有待继续探索
好吧,需要补充一下,上面有的方法是在IOS8以后才能用的,自己没注意,已经被坑了
相关文章推荐
- Swift 2.0学习笔记(Day 2)——使用Web网站编写Swift代码
- QT 学习记录:渐变-QLinearGradient,QRadialGradient,QConicalGradient)
- MySQL解决中文乱码问题
- WebGL实现HTML5的3D贪吃蛇游戏
- 获取窗口最大值数组 O(n)解法
- 渗透测试项目一
- iOS子线程操作检测版本更新,防止阻塞住线程
- Online Judge判题结果解析
- 关于在struts2中利用jquery中如何动态从数据库中加载图片并显示
- C++之关键字认识累积
- Python操作excel文件
- List与数组之间的转换
- zk_demo_me
- 我的第一行Swift代码
- vim 命令收集
- 【经典算法】:英雄联盟中打字屏蔽系统的实现
- SQL防注入
- 递归求和
- CentOS 6.4 安装极点五笔输入法
- C++类的实现方式