[英]How can I create and display an arraylist of random numbers in java?
我正在嘗試生成一個隨機數的數組列表並顯示它。 我不確定我要去哪里。 我認為我的showArray方法無法正常工作,因為它顯示兩個隨機數,然后重復第二個n-2次。
private static ArrayList<Integer> RandomArray(int n)
{
ArrayList<Integer> arrayRandom = new ArrayList<Integer>(n);
for (int i=0; i<n; i++)
{
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
Integer r = rand.nextInt() % 256;
arrayRandom.add(r);
}
return arrayRandom;
}
private static void ShowArray(ArrayList<Integer> randomArray)
{
int n = randomArray.size();
ArrayList<Integer> showArray = new ArrayList<Integer>(n);
for (int i = 0; i<n; i++)
{
int r = randomArray.get(i);
showArray.add(r);
}
System.out.println(showArray);
}
public static void main(String args[])
{
ShowArray(RandomArray(5));
}
因此,例如,這將產生一個輸出
[132、152、152、152、152]
任何幫助深表感謝。 提前致謝
將隨機對象移出循環,不要每次都設置種子。
ArrayList<Integer> arrayRandom = new ArrayList<Integer>(n);
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
for (int i=0; i<n; i++)
{
Integer r = rand.nextInt() % 256;
arrayRandom.add(r);
}
這應該更好。
您的問題是您不斷重置種子,從而重新啟動偽隨機數生成器(PRNG)序列。
做這個:
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
for (int i=0; i<n; i++)
{
Integer r = rand.nextInt(256);
arrayRandom.add(r);
}
不要每次迭代都設置種子
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
做一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.