iOS NSSet彩蛋

    关于NSSet和NSArray的区别,这里不再赘述,网上有非常多讲解的很优秀的文章,基础用法可参照以下文章

NSSet 总结 - iOS -

    本文主要分享一个小编使用时发现的彩蛋(如有雷同,纯属意外,联系小编删除),下面进入主题

    周所周知,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为过滤后需要的数组。打印结果如下:


iOS NSSet彩蛋_第1张图片

结果预期一样,通过来回转换,很简单就可以实现数据过滤

注:文章如有误,欢迎指正交流

你可能感兴趣的:(iOS NSSet彩蛋)