NSSet集合对象是用来干什么的呢,在之前做项目中很少用,但并不是代表不好用,在追求效率优化方面NSSet要比NSArray要高的多,比如在苹果端查找数据库中的数据NSSet要比NSArray要快的多。学习了NSSet可能会发现项目中有些情况可以优化,尤其是数组遍历,判断唯一性,还有其他
集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是它没有顺序。
集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址;不过NSArray是有序的集合,NSSet是无序的集合。
- 存储的所有对象只能有唯一一个,不能重复。
NSSet介绍
NSArray *array = [[NSArray alloc] initWithObjects:@"abc",@"def", @"ghw",nil];
NSSet *set1 = [NSSet setWithArray:array];
NSLog(@"%@", set1);
NSLog(@"%@",[set1 allObjects]);
打印结果:
2018-03-14 11:27:19.262887+0800 test[9761:369467] {(
abc,
def,
ghw
)}
2018-03-14 11:27:19.263065+0800 test[9761:369467] (
abc,
def,
ghw
)
//两种不同的创建集合的方法
NSSet *set2 = [[NSSet alloc]initWithObjects:@"sex",@"age",@"create",@"name",@"first",nil];
NSSet *set3 = [NSSet setWithObjects:@"sex",@"age",@&#