美文网首页
Objective-C之数组去重

Objective-C之数组去重

作者: 有毒的程序猿 | 来源:发表于2017-04-05 17:38 被阅读85次

前言

话说昨天是周日,程序猿跟产品经理一起看电视。每个节目看到一半程序猿就换台,看到一半就换台,几次之后产品经理终于忍无可忍的咆哮:老子刚看出点意思你就换、刚看出点意思你就换,到底还让不让人看啦?!程序猿淡定的盯着电视道:你半路改需求的时候我可没吱过声!

也许,永远不懂.jpeg
NSArray <NSString*>* originalArray; //待去重数组

第一种:利用NSDictionary的key的唯一性

NSMutableDictionary *dict = [[NSMutableDictionary dictionary];  
  for(NSString *original in dataArray)  
    {  
        [dict setValue:original forKey:original];  
    }  
 NSArray * noRepeatArray =  [dict allKeys];  

这种去重方式得到的数组是一个乱序数组,因为字典本身无序.

第二种方法:利用NSSet去重

NSSet *set = [NSSet setWithArray:originalArray];  
NSArray * noRepeatArray = [set allObjects];

这种方法也会得到一个无序数组,集合本无序

第三种方法:利用NSArray的containsObject 来去重

 NSMutableArray *noRepeatArray = [[NSMutableArray alloc]init];  
  for (NSString *original in originalArray) {  
        if (![noRepeatArray containsObject:original]) {  
            [noRepeatArray addObject:str];  
        }  
    }  
得到一个有序数组

第四种方法:利用KVC的方式

NSArray * noRepeatArray = = [originalArray valueForKeyPath:@"@distinctUnionOfObjects.self"];  
得到一个有序数组

个人观点,NSSet是最快的,如果不要求顺序优先选择.

相关文章

  • Objective-C之数组去重

    前言 话说昨天是周日,程序猿跟产品经理一起看电视。每个节目看到一半程序猿就换台,看到一半就换台,几次之后产品经理终...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • JavaScript数组去重

    JavaScript中数组的常用操作之数组去重 方法一 方法二

  • 2020-01-19做些js的数组练习吧

    1.前端面试必问之数组去重 前端面试必问之数组去重 2.前端面试必问之深拷贝浅拷贝 3.

  • Set之数组去重

    1、利用Set、Array.from(): 2、扩展运算符、Set 。

  • javaScript 之 数组去重

    今天咱么分享下数组去重,这个问题基本每次面试都会被问到,那我们如何以压倒性的优势回答这个问题呢?老规矩,需求,分析...

  • js之数组去重

    1.每次删除后面重复的元素 2.使用数组的indexOf()方法 3.观察数组该元素是否是第一次出现 4.利用Ob...

  • javascript之数组去重

    在数组去重中我们用indexOf() 来循环判断一遍;indexOf(); 返回在当前数组中首次出现的下标,没有则...

  • JavaScript 之数组去重

    [个人博客]:(https://github.com/zenglinan/blog) 如果对你有帮助,欢迎star...

  • 实现数组去重有哪些方式

    简单的数组去重 数组对象去重

网友评论

      本文标题:Objective-C之数组去重

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