iOS 随机打乱一个数组的顺序 获得一个新的数组

原创 2016年06月01日 16:31:20

第一种方法:笨方法

-(NSMutableArray*)getRandomArrFrome:(NSArray*)arr
{
    NSMutableArray *newArr = [NSMutableArray new];
    while (newArr.count != arr.count) {
        //生成随机数
        int x =arc4random() % arr.count;
        id obj = arr[x];
        if (![newArr containsObject:obj]) {
            [newArr addObject:obj];
        }
    }
    return newArr;
}


第二种方法:苹果官方方法

    NSArray* arr = @[@"1",@"2",@"3"];
    arr = [arr sortedArrayUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) {
        int seed = arc4random_uniform(2);
        if (seed) {
            return [str1 compare:str2];
        } else {
            return [str2 compare:str1];
        }
    }];




版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

去客户那增加 Oracle tablespace

alter tablespace TBS_SFE_DATA add datafile '/oradata/sfe/tbs_sfe_data_05.dbf' size 30G;

iOS数组元素随机排序

//数组随机排序     NSArray *array = @[@"1",@"2",@"3",@"4",@"5"];        ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

如何在Word2010文档中设置剪贴画边框

在Word2010文档中,用户可以为选中的剪贴画设置多种颜色、多种粗细尺寸的实线边框或虚线边框。实际上,当用户使用Word2010预设的剪贴画样式时,某些样式已经应用了剪贴画边框。当然,用户也可以根据...

ios打乱数组顺序

在我们做项目的时候有时候会需要一些乱序的数组,即每次显示的顺序不同,我们可以使用苹果官方的一个方法- (NSArray *)sortedArrayUsingComparator:(NSComparat...

iOS开发之把数组中的元素进行随机排序、随机数产生的几种方法

一、先讲下ios三种取随机数的方法: 1.    srand((unsigned)time(0));  //不加这句每次产生的随机数不变         int ...

逝去的2015,期待的2016

我今年二十六岁, 每天起床的时间从中午12点变成了早上8点,睡觉的时间从凌晨几点变成了晚上12点。 工作中开始接触形形色色的人,见到亲戚朋友,他们不再问你考试考了多少分, 而是问你工资多少,...

洗牌算法:随机打乱一个数组的顺序

原文转自:http://blog.csdn.net/cxllyg/article/details/7986352 给定一个数组,要求把数组内元素的顺序随机打乱,然后输出,主要是要保证效率。 这其实...

谈一谈array_pop和end有什么差别?

从功能上看,array_pop和end都是可以得到数组的最后一个元素,但是这只是他们一样的地方。其实,他们的本质是不大一样的,我们来看下厦门的案例: <?php $array = array(...

访问一个数组的值。

在一个数组是可见的一个方案,其中的任何一点,我们可以个别访问的任何元素的值,就好像它是一个正常的变量,从而能够同时读取和修改它的值。 格式很简单,只要:  名[索引]  继续上面的例子bi...

Interview Q&A - 合并两个有序数组为一个有序数组(C++)

/* 问题:有两个有序数组,合并成一个有序数组。 分析:在内存中申请一个大小为两有序数组大小之和的新数组作为合并后的数组,从后往前把两个数组合并到新数组中。 */ // Main.cpp - ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)