【发布时间】:2012-12-14 05:41:37
【问题描述】:
我想替换我存储在 ArrayList 中的重复数字(如果有)。我获得了随机变量的数字。这是课程。
import java.util.*;
public class RandomNumbers {
// instance variables
private ArrayList<Integer> randomNumberList = new ArrayList<Integer>();
private Random randomNums = new Random();
public RandomNumbers(){
// generating and adding random numbers to the list
for (int i=0; i<MemoryGame.totalAnswers; i++)
randomNumberList.add(randomNums.nextInt(32));
System.out.println("Numbers in the list: " + randomNumberList);
System.out.println("");
}
public ArrayList<Integer> getRandomNumbers(){
return randomNumberList;
}
}
我的教科书告诉我如何添加、删除和检索一个号码,但没有告诉我如何替换重复的号码。
谢谢。
【问题讨论】:
-
“替换”是什么意思?您是否想继续生成随机数,直到获得一个您还没有得到的随机数?
-
重复问题中的重复:stackoverflow.com/questions/203984/…
-
顺便说一句,
MemoryGame.totalAnswers总是小于 32?如果没有,您可能会遇到问题...... -
我需要 8 个随机数来回
-
对于一组合理大小的不同数字进行随机化,我会使用 [Fisher-Yates] 洗牌,然后选择第一个 N (可能高达整个输入大小)结果。我发现这种方法总体上更干净。 (Fisher-Yates shuffle 也可以以这样的方式实现,即数字作为流生成,而不需要完全计算。)