比较两个数组
问题描述:
我有两个数组:比较两个数组
array1=[1,2,3,4,5,6,7,8,9,10,11]
array2=[1,2]
我想在“数组2”来比较天气因素存在于“阵列1”与否。 如果是,那么我需要运行一个函数,否则退出。 如何做到这一点?
答
约列举了数组1是什么?
沿着我得到了共同的项目像这样的
NSArray *array1 = ...;
NSArray *array2 = ...;
[array1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([array2 containsObject: obj]) {
// Run the function you wanted to
}
}];
答
一个简单的逻辑的方法来做到这将是一个for循环:
for(int a = 0; a < array1.count; a++) {
for(int b = 0; b < array2.count; b++) {
if([[array1 objectAtIndex:a] isEqualToString:[array2 objectAtIndex:b]]) {
//do something here
}
}
}
答
东西线: -
NSMutableSet *idSet=[NSMutableSet setWithArray:Array1];
[idSet intersectSet:[NSSet setWithArray:Array2]];
NSArray *Common_array=[idSet allObjects];
共同数组你可以得到存在两个数组中是同一个对象0对象在 Common_array比在两个数组中都没有相同的对象。
+0
简单且紧凑的代码。 – kushalrshah 2012-08-01 07:50:39
+0
它的甜美和简单 – Wolverine 2012-08-01 11:24:02
希望我可以提供更多+1的内存管理:) – ilhnctn 2012-08-01 07:29:39
谢谢,这是枚举的好处,如果意图是只运行一些包含的项目上的代码不需要创建新的对象。如果想法是过滤,那么我会使用NSMutableSet方法。 – 2012-08-01 07:44:50
当我看到我决定使用NSMutableSet来回答的问题时,但在阅读您的文章后,我会发现这是最好的 – ilhnctn 2012-08-01 07:50:47