zoukankan      html  css  js  c++  java
  • 学习apache commons lang3的源代码 (1):前言和R

    本系列主要是针对lang3的3.7版本的源代码进行学习,并适当举例。一共大概150多个java文件,争取30天内学习完毕。

    26个英文字母 争取每天学习1个字母开头的类们。

    今天,就学习R开头的吧。

    第一个:RandomUtils。

    这个类,是对Random类 (java.util) 的补充。

    这个类,的代码不算复杂。因为是Random的helper。因此,在其内部,首先声明一个:

     private static final Random RANDOM = new Random();

    1)有些方法,实际上就是直接调用Random的方法。比如:nextBoolean();

    public static boolean nextBoolean() {
    return RANDOM.nextBoolean();
    }

    2)有些方法,实际上就是做一些校验,然后,增强型的直接调用Random的方法。比如:nextBytes。

    public static byte[] nextBytes(final int count) {
    Validate.isTrue(count >= 0, "Count cannot be negative.");

    final byte[] result = new byte[count];
    RANDOM.nextBytes(result);
    return result;
    }

    3)有些方法,是Random没有直接提供的。比如:nextInt,是返回两个整数之间的随机值。

    public static int nextInt(final int startInclusive, final int endExclusive) {
    Validate.isTrue(endExclusive >= startInclusive,
    "Start value must be smaller or equal to end value.");
    Validate.isTrue(startInclusive >= 0, "Both range values must be non-negative.");

    if (startInclusive == endExclusive) {
    return startInclusive;
    }

    return startInclusive + RANDOM.nextInt(endExclusive - startInclusive);
    }

    至于nextLong,则和nextInt类似。

    4)

  • 相关阅读:
    670. Maximum Swap
    653. Two Sum IV
    639. Decode Ways II
    636. Exclusive Time of Functions
    621. Task Scheduler
    572. Subtree of Another Tree
    554. Brick Wall
    543. Diameter of Binary Tree
    535. Encode and Decode TinyURL
    博客园自定义背景图片
  • 原文地址:https://www.cnblogs.com/aomi/p/7909581.html
Copyright © 2011-2022 走看看