美文网首页
关于数组去除重复的数据的方法推荐

关于数组去除重复的数据的方法推荐

作者: 流年划过颜夕 | 来源:发表于2018-06-01 13:20 被阅读11次

在日常工作中,经常会遇见在数组中有重复的数据,可能是服务器返回中本来就有,或者异常操作造成的重复数据,所以往往需要去除重复数据或者做安全过滤手段防止重复数据产生。

对于简单的数据,比如数组中仅含有的成员是字符串,很多人一般就用for循环或者数组的containsObject来去除,但是经常数组里面会有很多复杂的结构类型,最常见的比如字典。

如果还是用上述的方法,当然可行,但是不仅麻烦,而且效率会很低下。

这里强列推荐下NSSet(集合)
NSSet和我们常用NSArry区别是:在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到了一个算法hash,一个hash过程就能找到A存储的位置。而对于NSArray,若想知道A到底在不在数组中,则需要便利整个数组,显然效率较低了;

而在官方文档中也这样写道:
“You can use sets as an alternative to arrays when the order of elements isn’t important and performance in testing whether an object is contained in the set is a consideration—while arrays are ordered, testing for membership is slower than with sets.”
意思是在不考虑顺序的情况下,测试是否包含object,最好用NSSet,并且NSSet的性能比NSArry好.

用法也十分简单,一步搞定方便:
dataArray 里还有重复的数据
NSSet *set = [NSSet setWithArray:dataArray];
此时,set里面的所有成员已经是非重复的。
如果需要排序,转回NSArray类型进行排序即可。
NSArray *dataArray =[set allObjects]

相关文章

  • 关于数组去除重复的数据的方法推荐

    在日常工作中,经常会遇见在数组中有重复的数据,可能是服务器返回中本来就有,或者异常操作造成的重复数据,所以往往需要...

  • 关于数组内数据排序的方法推荐

    之前说到关于数组去除重复的数据的方法推荐,用NSSet可以高效的去重,但是毕竟NSSet是集合,去重后的数据往往是...

  • 剔除数组中重复元素

    关于iOS去除数组中重复数据的几种方法 摘要其一: NSSet 功能和性能上挺强大的,但是相对于数组,其是无序的集...

  • iOS开发 - NSArray 去除重复数据的方法

    在工作的时候会遇到去除数组中重复数据的情况,如何去除重复的数据呢. 经过网上查找发现,有以下有三种方法: 1.co...

  • excel中如何去除重复项

    对于以下数据,有很多的重复项。那么,excel中如何去除重复项? 下面推荐大家使用以下三种方式: 一、基础方法 选...

  • PHP学习笔记--去除数组中的重复数据

    在这总结两种PHP中去除数组中重复数据的方法 1.直接利用array_unique函数 利用array_uniqu...

  • iOS去除数组中重复数据的四种方法

    在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? NSArray *dataArra...

  • 数组

    1. 去除数组中的重复元素 题目 已知一个已经排序的数组,去除数组中的重复元素,返回数组的长度。 思路 使用双指针...

  • 去除数组中重复数据的几种方法

    在工程中我们不免会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的A...

  • js手写数组去重

    javascript数组中若存在重复元素,此时我们需要将重复的元素去除,下面我讲介绍一下几种方法进行数组元素去重 ...

网友评论

      本文标题:关于数组去除重复的数据的方法推荐

      本文链接:https://www.haomeiwen.com/subject/spahsftx.html