Objective c 如果setA中的任何元素处于setB中

Objective c 如果setA中的任何元素处于setB中,objective-c,nsset,nsmutableset,Objective C,Nsset,Nsmutableset,只是一个关于Obj-c中集合的快速问题。给定两组: NSMutableSet* a = [NSMutableSet setWithObjects: 1, 2, 3, nil]; NSMutableSet* b = [NSMutableSet setWithObjects: 3, 4, 5, nil]; 是否有一种快速简便的方法来确定集合a中的任何元素是否也在集合B中 类似于 if ([a contains:[b allObjects]]) // do something 这就是为什么

只是一个关于Obj-c中集合的快速问题。给定两组:

NSMutableSet* a = [NSMutableSet setWithObjects: 1, 2, 3, nil];
NSMutableSet* b = [NSMutableSet setWithObjects: 3, 4, 5, nil];
是否有一种快速简便的方法来确定集合a中的任何元素是否也在集合B中

类似于

if ([a contains:[b allObjects]])
   // do something
这就是为什么

这就是为什么


您要查找的单词是“intersect”:


您要查找的单词是“intersect”:


换句话说,交叉口是否为非空?换句话说,交叉口是否为非空?好的。因此,在我的程序的后面,当我想从一个集合中删除另一个集合中的所有元素时,我应该怎么做?@Clever:创建一个包含“主”集合的
NSMutableSet
,并调用
-minusSet:
,传入您想要删除的集合。谢谢Kevin。还有一个简单的例子——与NSMutableArray相比,我认为使用集合会带来什么样的效率提升?我不认为这真的有什么关系,直到我进入了一个非常多的物体?聪明:取决于你在做什么。集合是一个无序的集合,具有摊销的固定时间访问/变异,就像字典一样(因为它们都有哈希表支持)。数组是一个有序集合,对单个元素具有恒定的访问时间,但插入/删除可能是线性的(尽管在数组的前后进行了优化)。所以这实际上取决于您需要什么。@聪明:基本上,如果您需要一个有序的容器,请使用数组。如果需要无序容器,请使用集合。请注意,与数组不同,集合也是唯一的,所以如果您不需要该属性,那么不要使用集合。好的。因此,在我的程序的后面,当我想从一个集合中删除另一个集合中的所有元素时,我应该怎么做?@Clever:创建一个包含“主”集合的
NSMutableSet
,并调用
-minusSet:
,传入您想要删除的集合。谢谢Kevin。还有一个简单的例子——与NSMutableArray相比,我认为使用集合会带来什么样的效率提升?我不认为这真的有什么关系,直到我进入了一个非常多的物体?聪明:取决于你在做什么。集合是一个无序的集合,具有摊销的固定时间访问/变异,就像字典一样(因为它们都有哈希表支持)。数组是一个有序集合,对单个元素具有恒定的访问时间,但插入/删除可能是线性的(尽管在数组的前后进行了优化)。所以这实际上取决于您需要什么。@聪明:基本上,如果您需要一个有序的容器,请使用数组。如果需要无序容器,请使用集合。请注意,与数组不同,集合也是唯一的,因此,如果您不需要该属性,那么不要使用集合。
if ([a intersectsSet:b])
    // do something
if ([a intersectsSet:b]) {
    ...
}