Foundation NSMutableArray遍历,选取出符合条件的所有对象

一、查找数组中一个元素,找到后立即返回

当遍历数组只需要返回其中一个符合条件的元素时,使用 indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop)块进行判断,

当找到符合条件的元素时,将stop指针置为YES,同事返回YES,终止对数组元素的查找,否则返回NO。最后判断result的值是否等于NSNotFound,然后返回找到的元素

 1 -(AddressCard *) lookUp: (NSString *) name
 2 {
 3     NSUInteger result =  [book indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
 4         if ([[obj name] caseInsensitiveCompare: name] == NSOrderedSame ) {
 5             *stop = YES;
 6             return YES;
 7         }else{
 8             return NO;
 9         }
10     }];
11     if (result != NSNotFound) {
12         return book[result];
13     }else{
14         return nil;
15     }    }

二、查找数组中所有符合条件的元素,并将这些元素放到可变数组中,最后返回

  当遍历数组只需要返回所有符合条件的元素时,使用数组的 indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop)块进行判断,将符合条件的元素放到数组中,最后判断数组大小进行返回。

 1 -(NSMutableArray *) lookUpAll:(NSString *)name
 2 {
 3
 4     NSMutableArray *matchs = [NSMutableArray array];
 5     NSIndexSet *all = [book indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
 6         if ([[obj name] rangeOfString: name].location == NSNotFound) {
 7             [matchs addObject: obj];
 8             return YES;
 9         }else{
10             return NO;
11         }
12     }];
13
14     if ([matchs count]) {
15         return matchs;
16     }else{
17         return  nil;
18     }
19 }
时间: 2024-10-31 03:23:58

Foundation NSMutableArray遍历,选取出符合条件的所有对象的相关文章

编程之美 找出符合条件的整数

好不容易把内容看懂~ 最主要的一句话:只需要将10k%N的结果与余数信息数组里非空的元素相加,再去模N,看看会不会出现新的余数~ 时间太紧迫~先把自己写的代码贴上,以后再详解 1 int FindMin(int N) 2 { 3 if(N <= 1) 4 return N; 5 6 int* A = new int[N];//这个是记录模N余i之后的数值 7 8 memset(A, -1, sizeof(int) * N); 9 int factor = 1; 10 A[1] = 1; 11 1

15. 3Sum_左右开工,遍历找出符合目标的数字

题目: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: The solution set must not contain duplicate triplets. For example, given array S = [

第2章 数字之魅——找符合条件的整数

找符合条件的整数 问题描述 任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0. 解决这个问题首先考虑对于任意的N,是否这样的M一定存在.可以证明,M是一定存在的,而且不唯一.简单证明:因为 这是一个无穷数列,但是数列中的每一项取值范围都在[0, N-1]之间.所以这个无穷数列中间必定存在循环节.即假设有s,t均是正整数,且s<t,有 .于是循环节长度为t-s.于是10^s = 10^t.因此有:,所以 例如,取N=3,因为10的任何非负次方模3都为

mysql随机查询符合条件的几条记录

随机查询,方法可以有很多种.比如,查询出所有记录,然后随机从列表中取n条记录.使用程序便可实现.可是程序实现必须查询出所有符合条件的记录(至少是所有符合条件的记录id),然后再随机取出n个id,查询数据库.但是效率毕竟没有数据库中直接查询得快.下面介绍mysql中怎样随机查询n条记录. 1.最简单的办法order by rand(),示例 select * from question q where q.`level`=1 order by rand() limit 1; 此写法,可以将查询出的

编程:找出所有符合条件的元素

题目:给出一个元素无序的数组,求出一个数,使得其左边的数都小于它,右边的数都大于等于它. 举例:[1,2,3,1,2,0,5,6],返回下标6(数字为5). 思路: time complexity:O(n) space complexity:O(1) int findnum(vector<int>& nums){ if(nums.empty()) return -1; int cur = 0; //当前符合条件的元素下标 int maxv = nums[0]; //目前已遍历数组的最大

[ jquery 位置选择器 :first-child :last-child ] 强化说明:选取属于其父元素和所有兄弟元素中子元素集合中处于第一个(最后一个)位置上符合条件的元素

强化说明:选取属于其父元素和所有兄弟元素中子元素集合中处于第一个(最后一个)位置上符合条件的元素 注意和:first :last 的区别 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http

一个自然数在1700和1800之间,且被5除余3,被7除余4,被11除余6,求符合条件的数

昨天晚上看了一道逻辑题:一个自然数在1700和1800之间,且被5除余3,被7除余4,被11除余6,求符合条件的数.题目后面写着,有人看了几分钟便给出了答案.我很好奇,此人是如何解答的. 我自己先琢磨了下,拿笔算了半天,最后一个巧合的情况下,得到了答案.此题的一个关键且明显的推论是:能被5除余3的数,肯定最后一位是3或者8.那么接下来怎么推呢?我从网上搜集了答案. 方案1: 这个数被5除余3,则此数个位数为3或8, 设这个数十位为x,则此数可表达为1703+10x,或1708+10x当此数为17

PHP preg_replace() 正则替换所有符合条件的字符串

PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素 需要我们用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的. 比如模版引擎解析模版.垃圾敏感信息过滤等等. 一般这种情况,我们用正则按我们的规则去匹配preg_match.替换preg_replace. 但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少. 根据前面说的,两种场景:统计分析,用匹配:

hdu 3641 数论 二分求符合条件的最小值数学杂题

http://acm.hdu.edu.cn/showproblem.php?pid=3641 学到: 1.二分求符合条件的最小值 /*==================================================== 二分查找符合条件的最小值 ======================================================*/ ll solve() { __int64 low = 0, high = INF, mid ; while(low <=