パッケージ org.piax.util

クラス RandomUtil

java.lang.Object
org.piax.util.RandomUtil

public class RandomUtil
extends Object
  • フィールド詳細

  • コンストラクタの詳細

  • メソッドの詳細

    • setSharedRandom

      public static void setSharedRandom​(Random rand)
    • getSharedRandom

      public static Random getSharedRandom()
    • renewSharedRandom

      public static Random renewSharedRandom()
    • newCollisionlessRandom

      public static Random newCollisionlessRandom()
      seedの初期生成を工夫し、その際に起こりうるコリジョンを抑制したRandomオブジェクトを生成する。

      通常のRandomオブジェクトの生成において、seedを省略した場合、ミリ秒精度の時刻が用いられる。 ミリ秒の精度(正しくはtick精度)の場合、同時に複数のRandomオブジェクトを生成したときには、 生成箇所が異なるマシンであってもseedが一致してしまうことが起こりうる。 これに対処するため、このメソッドでは、System.nanoTime() で取れるlong値に、IPアドレス (取得できない場合は、一時的に生成したObject)のhash値を足した値をseedに使用している。

      戻り値:
      seedの初期生成コリジョンのないRandomオブジェクト
    • newBytes

      public static byte[] newBytes​(int len, Random rand)