Class Java2Random

java.lang.Object
java.util.Random
nl.tudelft.simulation.jstats.streams.Java2Random
All Implemented Interfaces:
Serializable, RandomGenerator, StreamInterface

public class Java2Random extends Random implements StreamInterface
The Java2Random is an extension of the java.util.Random class which implements the StreamInterface.

Copyright (c) 2002-2024 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://simulation.tudelft.nl. The DSOL project is distributed under a three-clause BSD-style license, which can be found at https://https://simulation.tudelft.nl/dsol/docs/latest/license.html.

Author:
Alexander Verbraeck, Peter Jacobs
See Also:
  • Constructor Details

    • Java2Random

      public Java2Random()
      Create a new Java2Random and initializes with System.currentTimeMillis.
    • Java2Random

      public Java2Random(long seed)
      Create a new Java2Random and initialize with a given seed.
      Parameters:
      seed - long; the seed to use.
  • Method Details

    • reset

      public void reset()
      Reset the stream to use the original seed with which it was initialized.
      Specified by:
      reset in interface StreamInterface
    • getOriginalSeed

      public long getOriginalSeed()
      Return the original seed of the generator with which it has been first initialized.
      Specified by:
      getOriginalSeed in interface StreamInterface
      Returns:
      long; the original seed of the generator when it was first initialized
    • nextInt

      public int nextInt(int i, int j)
      Return pseudo-random number from the stream between the integers i (inclusive) and j (inclusive).
      Specified by:
      nextInt in interface RandomGenerator
      Specified by:
      nextInt in interface StreamInterface
      Parameters:
      i - int; the minimal value
      j - int; the maximum value
      Returns:
      int; a value between i and j
    • setSeed

      public void setSeed(long seed)
      Set the seed of the generator.
      Specified by:
      setSeed in interface StreamInterface
      Overrides:
      setSeed in class Random
      Parameters:
      seed - long; the new seed
    • getSeed

      public long getSeed()
      Return the seed of the generator.
      Specified by:
      getSeed in interface StreamInterface
      Returns:
      long; the seed
    • saveState

      public byte[] saveState() throws StreamException
      Save the state of the RNG into an object, e.g. to roll it back to this state.
      Specified by:
      saveState in interface StreamInterface
      Returns:
      the state as an object specific to the RNG.
      Throws:
      StreamException - when getting the state fails.
    • restoreState

      public void restoreState(byte[] state) throws StreamException
      Restore the state to an earlier saved state object.
      Specified by:
      restoreState in interface StreamInterface
      Parameters:
      state - Object; the earlier saved state to which the RNG rolls back.
      Throws:
      StreamException - when resetting the state fails.