【美高梅手机版4858】数组去重方法总括,iOS数组去重项目中用到的总计

By admin in 美高梅手机版4858 on 2019年8月10日

数组去重方法总括,数组重方法总括

这两天正在整理面试题,顺便把原先学的事物给总计一下,数组去重,作者猜面试应该考的概率还是蛮高的,所以上边就让博主给讲讲iOS数组去重的三种艺术。

  • 首先种:冒泡排序,然后挨个挨个比较,这么些没什么可说的,关键是劳动,况且时间复杂度也挺大的,所以博主就不给讲了。
  • 第两种:利用数组排序。
  • NSArray *array = @[@”小玉”,@”小小鱼”,@”小玉”];
        //数组去重方法---方法1
        //建立一个新的的可变数组,数组长度为0
        NSMutableArray *newArray = [NSMutableArray array];
        //遍历array,然后判断新数组中是否包含该元素,如果没有,则添加。
        for (NSString *string in array) {

            if (![newArray containsObject:string]) {

                [newArray addObject:string];
            }
        }
        //输出新数组中的元素
        for (NSString *string in newArray) {

            NSLog(@"%@",string);
        }

近些日子正在整理面试题,顺便把原先学的事物给总计一下,数组去重,笔者猜面试应该考的概率依然蛮高的,所以下边就让博主给讲讲iOS数组去重的三种方法。

近日正在整理面试题,顺便把从前学的事物给总计一下,数组去重,作者猜面试应该考的概率还是蛮高的,所以下边就让博主给讲讲iOS数组去重的两种办法。

类别中由于一些要求临时必要将NSArray中去除重复的成分,而留存NSArray中的成分不必然皆以NSString类型。

– 第两种:字典排序

        NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];

    //字符串去重方法二
        NSMutableDictionary *dict = [NSMutableDictionary dictionary];
        //根据字典的key值是唯一的,来写入数组
        for (NSNumber *number in array) {
            //把number拼接成字符串
            [dict setValue:number forKey:[NSString stringWithFormat:@"%@",number]];
        }

        NSLog(@"%@",[dict allValues]);
  • 第各个:NSSet排序-遵照NSSet是冬天的,他得以保障数据的独一性,插入相同的数码不会有啥样意义,博主提议大家面试能够用NSSet,方便火速,不会偷懒的程序猿不是好技师。。

NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];


    //第三种去重方法NSSet
    NSSet *set = [[NSSet alloc]initWithArray:array];

    NSLog(@"%@",[set allObjects]);

 

  • NSOrderedSet —
    有序排列–面试假如讲求稳步排列就用这几个,没须求就用地点拾分NSSet

    NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];

    //数组有序排列
    NSOrderedSet *orderSet = [NSOrderedSet orderedSetWithArray:array];

    NSLog(@"%@",orderSet.array);

 

近期正在整理面试题,顺便把原先学的事物给计算一下,数组去重,作者猜面试应该考的可能率还是蛮高…

  • 首先种:冒泡排序,然后挨个挨个比较,那么些没什么可说的,关键是辛苦,况兼时间复杂度也挺大的,所以博主就不给讲了。
  • 第三种:利用数组排序。
  • NSArray *array = @[@”小玉”,@”小小鱼”,@”小玉”];
  • 率先种:冒泡排序,然后挨个挨个相比,这么些没什么可说的,关键是麻烦,何况时间复杂度也挺大的,所以博主就不给讲了。
  • 其次种:利用数组排序。
  • NSArray *array = @[@”小玉”,@”小小鱼”,@”小玉”];

1.利用NSDictionary的AllKeys(AllValues)方法

能够将NSArray中的成分存入二个字典,然后利用AllKeys可能AllValues取得字典的全体键或值,这几个键或值都以去重的。

身体力行代码:

【美高梅手机版4858】数组去重方法总括,iOS数组去重项目中用到的总计。NSArray *arr = @[@111,@222,@111];

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

for (NSNumber *number in arr) {

[dict setObject:number forKey:number];

}

NSLog(@”%@”,[dict allValues]);

出口结果为:

2013-05-21 12:03:49.449 test1[4377:c07] (

111,

222

)

        //数组去重方法---方法1
        //建立一个新的的可变数组,数组长度为0
        NSMutableArray *newArray = [NSMutableArray array];
        //遍历array,然后判断新数组中是否包含该元素,如果没有,则添加。
        for (NSString *string in array) {

            if (![newArray containsObject:string]) {

                [newArray addObject:string];
            }
        }
        //输出新数组中的元素
        for (NSString *string in newArray) {

            NSLog(@"%@",string);
        }
        //数组去重方法---方法1
        //建立一个新的的可变数组,数组长度为0
        NSMutableArray *newArray = [NSMutableArray array];
        //遍历array,然后判断新数组中是否包含该元素,如果没有,则添加。
        for (NSString *string in array) {

            if (![newArray containsObject:string]) {

                [newArray addObject:string];
            }
        }
        //输出新数组中的元素
        for (NSString *string in newArray) {

            NSLog(@"%@",string);
        }

2.利用NSSet的AllObjects方法

这种办法更加快,利用NSSet不会加多重复成分的特点。可是去重的数组未有举办排序,假如急需排序,能够行使NSSortDescriptor类。

亲自过问代码:

NSArray *arr = @[@111,@222,@111];

NSSet *set = [NSSet setWithArray:arr];

NSLog(@”%@”,[set allObjects]);

输出结果为:

2013-05-21 12:06:26.508 test1[4547:c07] (

111,

222

)

排序的去重

无数时候或然会越过须要去除NSArray重复的因素,用了众多办法。

最方便火速的是NSSet.可是NSSet去重后临时候数组成分的顺序会

打乱。于是换了别的一种情势如下:

NSMutableArray *categoryArray = [[NSMutableArray alloc] init]美高梅手机版4858 ,;

for (unsigned i = 0; i < [nameArray count]; i++){

if ([categoryArray containsObject:[nameArray objectAtIndex:i]] ==
NO){

[categoryArray addObject:[nameArray objectAtIndex:i]];

}

}

逐个就不会乱了。

– 第三种:字典排序

        NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];

    //字符串去重方法二
        NSMutableDictionary *dict = [NSMutableDictionary dictionary];
        //根据字典的key值是唯一的,来写入数组
        for (NSNumber *number in array) {
            //把number拼接成字符串
            [dict setValue:number forKey:[NSString stringWithFormat:@"%@",number]];
        }

        NSLog(@"%@",[dict allValues]);
  • 第各种:NSSet排序-依照NSSet是冬日的,他得以有限支撑数据的独一性,插入同样的数码不会有如何效果,博主建议大家面试能够用NSSet,方便快捷,不会偷懒的程序猿不是好程序员。。

    NSArray *array = @[@”小玉”,@”小小鱼”,@”小玉”];

    //第三种去重方法NSSet
    NSSet *set = [[NSSet alloc]initWithArray:array];

    NSLog(@"%@",[set allObjects]);

 

  • NSOrderedSet —
    有序排列–面试如若要求不改变排列就用这几个,没供给就用地点十三分NSSet

    NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];
    
    //数组有序排列
    NSOrderedSet *orderSet = [NSOrderedSet orderedSetWithArray:array];
    
    NSLog(@"%@",orderSet.array);
    

 

– 第两种:字典排序

        NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];

    //字符串去重方法二
        NSMutableDictionary *dict = [NSMutableDictionary dictionary];
        //根据字典的key值是唯一的,来写入数组
        for (NSNumber *number in array) {
            //把number拼接成字符串
            [dict setValue:number forKey:[NSString stringWithFormat:@"%@",number]];
        }

        NSLog(@"%@",[dict allValues]);
  • 第八种:NSSet排序-根据NSSet是冬辰的,他得以保险数据的独一性,插入一样的多寡不会有怎么着效果,博主提出大家面试可以用NSSet,方便飞速,不会偷懒的程序猿不是好技士。。

    NSArray *array = @[@”小玉”,@”小小鱼”,@”小玉”];

    //第三种去重方法NSSet
    NSSet *set = [[NSSet alloc]initWithArray:array];

    NSLog(@"%@",[set allObjects]);

 

  • NSOrderedSet —
    有序排列–面试假若供给不改变排列就用那么些,没须要就用地点十分NSSet

    NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];
    
    //数组有序排列
    NSOrderedSet *orderSet = [NSOrderedSet orderedSetWithArray:array];
    
    NSLog(@"%@",orderSet.array);
    

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有