Hier ist ein einfaches Beispiel, das zeigt, wie man eine Zufallszahl aus einer geschlossenen [min, max]
Bereich, während min <= max is true
Sie können es als Feld in der gesamten Klasse wiederverwenden, wobei auch alle Random.class
Methoden an einem Ort
Beispiel für Ergebnisse:
RandomUtils random = new RandomUtils();
random.nextInt(0, 0); // returns 0
random.nextInt(10, 10); // returns 10
random.nextInt(-10, 10); // returns numbers from -10 to 10 (-10, -9....9, 10)
random.nextInt(10, -10); // throws assert
Quellen:
import junit.framework.Assert;
import java.util.Random;
public class RandomUtils extends Random {
/**
* @param min generated value. Can't be > then max
* @param max generated value
* @return values in closed range [min, max].
*/
public int nextInt(int min, int max) {
Assert.assertFalse("min can't be > then max; values:[" + min + ", " + max + "]", min > max);
if (min == max) {
return max;
}
return nextInt(max - min + 1) + min;
}
}
0 Stimmen
Wenn Sie viele Zufallszahlen benötigen, empfehle ich die Klasse Random in der API nicht. Sie hat einfach eine zu kleine Periode. Versuchen Sie die Mersenne-Twister stattdessen. Es gibt eine Java-Implementierung .
47 Stimmen
Bevor Sie eine neue Antwort schreiben, bedenken Sie, dass es bereits mehr als 65 Antworten auf diese Frage gibt. Bitte stellen Sie sicher, dass Ihre Antwort Informationen enthält, die nicht in den vorhandenen Antworten enthalten sind.