我正在生成随机数并将其添加到数组中。但我不希望重复。如何检查数组中是否已存在该值?谢谢!
int lowerBound = 0;
int long upperBound = numberOfQuestions;
int randomQuestionNumber = lowerBound + arc4random() % (upperBound - lowerBound);
[_randomQuestionNumberArray addObject:[NSDecimalNumber numberWithInt:randomQuestionNumber]];
答案 0 :(得分:4)
听起来像NSMutableOrderedSet
的完美用例如果订购不重要,那么NSMutableSet
是您最好的选择
您还应该使用arc4random_uniform
代替arc4random %
来减少模偏差
答案 1 :(得分:2)
最常见的方法是简单地用所有可能的值填充数组,然后将数组洗牌。见What's the Best Way to Shuffle an NSMutableArray?
答案 2 :(得分:1)
您可以使用
BOOl isFound = [_randomQuestionNumberArray containsObject:object];
答案 3 :(得分:0)
int lowerBound = 0;
int long upperBound = numberOfQuestions;
int randomQuestionNumber = lowerBound + arc4random() % (upperBound - lowerBound);
NSDecimalNumber *currentNumber = [NSDecimalNumber numberWithInt:randomQuestionNumber];
if (![_randomQuestionNumberArray containsObject:num]) {
[_randomQuestionNumberArray addObject:num];
}