[JAVA] Punkt 59: Kennen und verwenden Sie die Bibliotheken

59. Kennen und benutzen Sie die Bibliothek

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();

}

Recommended Posts

Punkt 59: Kennen und verwenden Sie die Bibliotheken
Punkt 40: Verwenden Sie konsequent die Überschreibungsanmerkung
Punkt 72: Bevorzugen Sie die Verwendung von Standardausnahmen
Importieren Sie eine Instanz und verwenden Sie sie auf einem anderen Bildschirm
[Rails] Ich weiß nicht, wie ich das Modell verwenden soll ...
Punkt 52: Verwenden Sie Überladung mit Bedacht
Punkt 53: Verwenden Sie Varargs mit Bedacht
Punkt 45: Verwenden Sie Streams mit Bedacht
Bis zur Verwendung von Spring Data und JPA Part 1
[Java] Verwenden Sie ResolverStyle.LENIENT, um Datum und Uhrzeit gut zu handhaben
Punkt 83: Verwenden Sie die verzögerte Initialisierung mit Bedacht
Punkt 26: Verwenden Sie keine Rohtypen
Verwenden Sie den schnellen Filter und die Karte
Ungefähr der gleiche und der gleiche Wert
Punkt 70: Verwenden Sie geprüfte Ausnahmen für wiederherstellbare Bedingungen und Laufzeitausnahmen für Programmierfehler