如何在Objective-C [重复]中随机移动数组的元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Objective-C [重复]中随机移动数组的元素相关的知识,希望对你有一定的参考价值。

可能重复:canonical way to randomize an NSArray in Objective-C

假设我有一个如下数组。

shuffleArray = [[NSMutableArray alloc] initWithObjects:@"A",@"B",@"C",@"D",@"E", nil];

并且我想如下随机改变数组元素的位置:

shuffleArray = [[NSMutableArray alloc] initWithObjects:@"C",@"A",@"B",@"E",@"D", nil];

那我该怎么办?

答案
-(NSArray *)shuffleme
{

 NSMutableArray *array = [NSMutableArray arrayWithCapacity:[self count]];

 NSMutableArray *array1 = [self mutableCopy];
 while ([array1 count] > 0)
 {
  int temp = arc4random() % [array1 count];
  id objectToMove = [array1 objectAtIndex:temp];
  [array addObject:objectToMove];
  [array1 removeObjectAtIndex:temp];
 }

   [array1 release];
   return array;
}

希望,对您有帮助。.>

另一答案
-(void)changeObjectAtIndex:(int)index1 index2:(int)index2 array:(NSMutableArray *)array
{
     id objectAtIndex1=[array objectAtIndex:index1];
     [array insertObject:[array objectAtIndex:index2] atIndex:index1];
     [array insertObject:id atIndex:index2];
}

以上是关于如何在Objective-C [重复]中随机移动数组的元素的主要内容,如果未能解决你的问题,请参考以下文章

PHP产生不重复随机数的5个方法总结

Python:列表和随机。如何在 0 和 [列表中的字符串数] 之间选择随机数? [复制]

C语言如何产生不重复的随机数

如何在objective-c ios中等待完成块完成[重复]

悬停时随机移动按钮:Javascript [重复]

统计随机数中重复数出现的次数----列表的练习