Ios 类似于iPhone中的HashSet
我是java程序员。Java中有一个Ios 类似于iPhone中的HashSet,ios,objective-c,iphone,Ios,Objective C,Iphone,我是java程序员。Java中有一个HashSet的概念,它不会在集中添加重复的元素。iPhone中有哪些类似的概念具有相同的功能 请提示 提前感谢。使用NSObject的has确保没有重复项 或 如果需要向集合中添加内容。HashSet是。我相信,它与可可相当。您可以在iOS中使用NSSet。NSSet是唯一项的(无序)集合。因此,您可以在数组中找到唯一的项,如下所示: NSSet *uniqueElements = [NSSet setWithArray:myArray];
HashSet
的概念,它不会在集中添加重复的元素。iPhone中有哪些类似的概念具有相同的功能
请提示
提前感谢。使用NSObject
的has确保没有重复项
或
如果需要向集合中添加内容。HashSet
是。我相信,它与可可相当。您可以在iOS中使用NSSet。NSSet是唯一项的(无序)集合。因此,您可以在数组中找到唯一的项,如下所示:
NSSet *uniqueElements = [NSSet setWithArray:myArray];
// iterate over the unique items
for(id element in uniqueElements)
{
// do something
}
NSSet最有可能使用散列算法进行插入O(1)(与O(n^2)相比,通过迭代检查每个项是否唯一),但Apple文档并没有做出这样的保证,因此您可能不应该依赖于该实现细节
如果出于某种原因,您需要将唯一项保留在已排序(有序)的集合中,您可以将集合转换回具有-[NSSet allObjects]的数组,然后对生成的数组进行排序。因此我使用NSSet
,这是否有助于实现我的要求?因为我不熟悉java,所以无法确认它们是否100%相同。但是NSSet
与您描述的不一样。从文档中可以看出NSSet
是不可变的。这将使它与Java中的HashSet
有根本的不同,并且可能不会执行所需的操作。Objective-C就是这样工作的,只需使用NSMutableSet
。我希望它们的顺序与我插入的顺序相同。NSSET会有帮助吗?如果您希望它是相同的顺序,那么使用NSORDERDESET:它是不同对象的有序集合。如果顺序相关,则可以使用NS(可变)OrderedSet。