美文网首页
IOS 数组去重方法

IOS 数组去重方法

作者: 奋斗吧_程序猿 | 来源:发表于2018-06-12 16:26 被阅读33次

1.使用字典key的唯一方法去重;如果key值相同,则不会再往字典中添加数据。

代码实现

NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)];    
    // 声明一个可变字典,用key的唯一性
    NSMutableDictionary *dic = [[NSMutableDictionaryalloc]initWithCapacity:0];
    for(NSString *strin checkArray)
    {
        [dic setValue:strforKey:str];
    }
    NSLog(@"%@",[dicallKeys]);

打印结果
2017-03-27 20:54:28.049 数组去重[3809:230991] (
111,
222,
555
)

2使用集合NSSet的初始化方法,简单暴力。

  • NSset 得出结果是无续的
NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)];
    // 直接调用集合是类初始化方法。
    NSSet *set = [NSSetsetWithArray:checkArray];
    NSLog(@"%@",[setallObjects]);

打印结果
2017-03-27 21:03:54.071 数组去重[3874:236584] (
111,
555,
222
)

  • 想要得出结果是有序的
NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)]; 
NSOrderedSet *set = [NSOrderedSetorderedSetWithArray:checkArray]; 
NSLog(@”%@”, set.array);

打印结果:
2017-03-27 21:12:58.619 数组去重[3936:242301] (
111,
222,
555
)

3.类似冒泡法的实现原理,逻辑简单,顺序不会变化

 NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)];
    NSMutableArray *containArray = [[NSMutableArrayalloc] init];
    for (unsigned i =0; i < [checkArray count]; i++){
        if ([containArraycontainsObject:[checkArrayobjectAtIndex:i]] == NO){
            [containArray addObject:[checkArrayobjectAtIndex:i]];
        }
    }
    NSLog(@"%@",containArray);

打印结果
2017-03-27 21:06:57.416 数组去重[3897:238906] (
111,
222,
555
)

4.使用valueForKeyPath:

NSArray *checkArray =@[@(111), @(222),@(555), @(222),@(111)];
    checkArray = [checkArray valueForKeyPath:@"@distinctUnionOfObjects.self"];
    NSLog(@"%@",checkArray);

打印结果:
2017-03-27 21:16:18.912 数组去重[3967:244528] (
111,
555,
222
)

相关文章

  • iOS-常见类型对象

    一、iOS 数组去重的方法

  • IOS 数组去重方法

    1.使用字典key的唯一方法去重;如果key值相同,则不会再往字典中添加数据。 代码实现 打印结果2017-03-...

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • Array集结号

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

  • 数组

    数组 数组常用方法 数组去重

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • 数组对象去重方法:

    数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...

  • js:数组去重

    数组去重的常见写法: 数组去重封装成方法: es6的数组去重(Array.from):

  • JS实现数组去重常用的六种方法

    双重for循环去重 includes实现数组去重 indexOf实现数组去重 利用set方法去重 ES6 Arra...

网友评论

      本文标题:IOS 数组去重方法

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