如果我有一些 NSArrays 填充了 ints 或 NSNumbers ,就像这样:
A: { 12, 23, 45, 56, 67, 78, 99, 234 }
B: { 12, 56, 78, 99, 454, 512 }
如何输出数字在A但不在B中的数组,如
{ 23, 45, 67, 234 }
答案 0 :(得分:14)
你要做的只是一套固定的操作。所以你可以在这里使用 NSSet 。你应该minusSet:
来获得你想要的结果。
NSMutableSet *resultSet = [NSMutableSet setWithArray:A];
NSSet *setB = [NSSet setWithArray:B];
// This is what you need!
[resultSet minusSet:setB];
Array *result = [resultSet allObjects];
答案 1 :(得分:2)
创建一个名为C的NSMutableArray。在A上执行一个循环,尝试在B中找到它的每个元素(使用[B containsObject:elemOfA]
,它只将-isEqual:elemOfA
消息发送给B的每个成员)。如果找到一个元素,什么都不做;如果找不到元素,请将其添加到C。