package tryAny.effectiveJava;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
import org.apache.commons.lang3.time.StopWatch;
public class RandomTest {
public static void main(String[] args) {
int n = 2 * (Integer.MAX_VALUE / 3);
int low1 = 0;
StopWatch sw1 = new StopWatch();
sw1.start();
for (int i = 0; i < 1000000; i++) {
if (random(n) < n / 2) {
low1++;
}
}
sw1.stop();
System.out.println(low1); //Ich denke nicht, dass es ungefähr 500.000 sein werden. 666 666. Platz.
System.out.println(sw1.getTime());
int low2 = 0;
StopWatch sw2 = new StopWatch();
sw2.start();
for (int i = 0; i < 1000000; i++) {
if (tlr.nextInt(n) < n / 2) {
low2++;
}
}
sw2.stop();
System.out.println(low2);//Es wird rund 500.000 sein.
System.out.println(sw2.getTime());//Die Geschwindigkeit ändert sich nicht viel
}
static Random rnd = new Random();
static int random(int n) {
return Math.abs(rnd.nextInt()) % n;
}
static ThreadLocalRandom tlr = ThreadLocalRandom.current();
}
Es gibt fünf Vorteile, die durch die Verwendung der Bibliothek erzielt werden können, anstatt den Prozess selbst zu schreiben.
Sie können die vom Experten ausgearbeitete Implementierung verwenden.
Zeit sparen.
Wenn sich die Bibliothek selbst weiterentwickelt, werden Sie davon profitieren.
Die Funktionalität der Bibliothek wird mit jeder Version erweitert, sodass Sie davon profitieren können.
Durch die Verwendung einer Standardbibliothek wird Ihr Code zum Mainstream, ist einfach zu lesen und zu verwenden.
Alle Programmierer sollten mit java.lang, java.util, java.io und ihren Unterpaketen vertraut sein.
Recommended Posts