尋找關於java中隨機和密碼問題的一些幫助。首先,我試圖隨機洗牌一個數組,但我一直在混洗數組中獲得2個相同的值。隨機排列隨機數組
下面的代碼:)
public static void shuffle (char[] characterArray) {
Random generator = new Random(12345);
for (int i= 0; i<characterArray.length ; i++) {
int numberChoosen = generator.nextInt(characterArray.length);
System.out.print((characterArray[numberChoosen]));
}
}
正如你所看到的,對於{A,B,C,D}
的characterArray,代碼生成改組陣列看起來像{B,C,D,D}
....爲什麼會產生兩個D的,而不是1原始數組中每個字母的字母?
謝謝! :)
您也可以製作一個比較器,比較兩個隨機值生成器bij de'Random'類。然後你做'Collection.sort(array,random_comparator)'。然而'Collections.shuffle'是標準的解決方案。 – martijnn2008
@ martijnn2008沒有。比較器必須一致。它不能返回隨機值。 –
@JBNizet它爲什麼不能工作。您可以製作標準比較器,但不是比較兩個值,而是比較兩個新生成器的隨機值。所以,請說'我不明白你的解決方案',而不是'這是不可能的'。 – martijnn2008