关于NSSet和NSArray的区别,这里不再赘述,网上有非常多讲解的很优秀的文章,基础用法可参照以下文章
本文主要分享一个小编使用时发现的彩蛋(如有雷同,纯属意外,联系小编删除),下面进入主题
周所周知,NSSet 集合和数组(NSArray)相似,都是存储不同对象的地址。而 NSArray 是有序的集合,而 NSSet 是无序的集合。其中,NSSet有一个特性,就是当集合中有相同值时,会默认删除相同的值,只保留一个,也就是保证了集合中数据的唯一性。于是,小编便想到,这个特性可以用于处理过滤 NSArray 中相同数据,具体代码如下:
NSArray *arr = @[@"1", @"2", @"3", @"3", @"2"];
NSLog(@"%@", arr);
NSSet *set = [[NSSet alloc] initWithArray:arr];
NSLog(@"%@", set);
NSArray*newArr = [set allObjects];
NSLog(@"%@", newArr);
arr为需要过滤重复数据的数组,newArr为过滤后需要的数组。打印结果如下:
结果预期一样,通过来回转换,很简单就可以实现数据过滤
注:文章如有误,欢迎指正交流😄😄
网友评论