iOS 不重复乱序排列

先上代码:

#pragma mark - 乱序排列
- (NSArray *)randomArray {
    // 随机数从这里边产生
    NSMutableArray *startArray = [[NSMutableArray alloc] initWithObjects:@0, @1, @2, @3, @4, @5, @6, @7, nil];
    // 随机数产生结果
    NSMutableArray *resultArray = [[NSMutableArray alloc] initWithCapacity:0];
    
    // 随机数个数
    NSInteger count = 8;
    for (int i = 0; i < count; i++) {
        int t = arc4random()%startArray.count;
        resultArray[i] = startArray[t];
        startArray[t] = [startArray lastObject]; // 只是乱序,保证了数据不会重复
        [startArray removeLastObject];
    }
    
    return resultArray;
}

初始化resultArray 的时候建议使用 initWithCapacity 方法,这样做的好处:初始化使用 initWithCapacity 的作用

你可能感兴趣的:(iOS 不重复乱序排列)