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); //Je ne pense pas que ce sera autour de 500 000. 666 666e place.
        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);//Ce sera environ 500 000.
        System.out.println(sw2.getTime());//La vitesse ne change pas beaucoup
    }
    static Random rnd = new Random();
    static int random(int n) {
        return Math.abs(rnd.nextInt()) % n;
    }
    static ThreadLocalRandom tlr = ThreadLocalRandom.current();
}
Il y a cinq avantages qui peuvent être obtenus en utilisant la bibliothèque au lieu d'écrire le processus vous-même.
Vous pouvez utiliser l'implémentation élaborée par l'expert.
Gagner du temps.
Au fur et à mesure que la bibliothèque elle-même évolue, vous en bénéficierez.
La fonctionnalité de la bibliothèque augmentera avec chaque version, vous pouvez donc en profiter.
En utilisant une bibliothèque standard, votre code sera grand public, facile à lire et à utiliser.
Tous les programmeurs doivent être familiarisés avec java.lang, java.util, java.io et leurs sous-packages.
Recommended Posts