在Objective-C中混洗一个或多个数组

时间:2011-06-02 00:05:37

标签: arrays nsmutablearray 2d

我有一个整数数组,我希望将这个数组拆分成更小的整数数组,然后将这些较小的数组放入一个新数组中,将这个新数组洗牌,然后用洗牌整数重新填充原始数组。结果将是原始数组的洗牌版本,但每个单独的项目都不会被洗牌,而是原始的块将被洗牌。

我可以用Java,C#这样做,但是对Objective-C来说是新手,所以任何例子都会有所帮助。

这是我到目前为止所拥有的:

NSMutableArray *chunks = [[NSMutableArray alloc] init];
for(int x = 0; x < [rawData count]; x += 400){
    NSMutableArray *chunk = [[NSMutableArray alloc] init];
    for(int y = 0; y < 400; y++){ //chunks of 400 items
        [chunk addObject:[NSNumber numberWithInt:rawData[x + y]]];
    }
    count ++;
}
//shuffle chunks
int index = 0;
for(int i = 0; i < [chunks count]; i ++ ){
    for (int y = 0; y < 400; y++) {
        //how do I put the chunks chunk back into the rawData[index]??
    }
}

1 个答案:

答案 0 :(得分:0)

这就是你要找的东西(请注意你在第二个循环中迭代到400 ...你必须在'chunk.count'处停止):

for(int i = 0; i < [chunks count]; i ++ ){
  NSMutableArray *chunk = [chunks objectAtIndex:i];
  for (int y = 0; y < [chunk count]; y++) {
    [rawData replaceObjectAtIndex:i*400+y withObject:[chunk objectAtIndex:y]];