Class RandomUtils
- java.lang.Object
-
- org.apache.commons.lang3.RandomUtils
-
public class RandomUtils extends java.lang.ObjectSupplements the standardRandomclass.Use
secure()to get the singleton instance based onSecureRandom.getInstanceStrong()which uses an algorithms/providers specified in thesecurerandom.strongAlgorithmsSecurityproperty.Use
insecure()to get the singleton instance based onThreadLocalRandom.current(); which is not cryptographically secure.Starting in version 3.15.0, this class uses
SecureRandom.getInstanceStrong()for static methods.Starting in version 3.16.0, this class uses
secure()for static methods and addsinsecure().Before version 3.15.0, this class used
ThreadLocalRandom.current()for static methods, which is not cryptographically secure.Please note that the Apache Commons project provides a component dedicated to pseudo-random number generation, namely Commons RNG, that may be a better choice for applications with more stringent requirements (performance and/or correctness).
- Since:
- 3.3
- See Also:
RandomStringUtils
-
-
Constructor Summary
Constructors Constructor Description RandomUtils()Deprecated.TODO Make private in 4.0.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static booleannextBoolean()Generates a random boolean value.static byte[]nextBytes(int count)Generates an array of random bytes.static doublenextDouble()Generates a random double between 0 (inclusive) and Double.MAX_VALUE (exclusive).static doublenextDouble(double startInclusive, double endExclusive)Generates a random double within the specified range.static floatnextFloat()Generates a random float between 0 (inclusive) and Float.MAX_VALUE (exclusive).static floatnextFloat(float startInclusive, float endExclusive)Generates a random float within the specified range.static intnextInt()Generates a random int between 0 (inclusive) and Integer.MAX_VALUE (exclusive).static intnextInt(int startInclusive, int endExclusive)Generates a random integer within the specified range.static longnextLong()Generates a random long between 0 (inclusive) and Long.MAX_VALUE (exclusive).static longnextLong(long startInclusive, long endExclusive)Generates a random long within the specified range.booleanrandomBoolean()Generates a random boolean value.byte[]randomBytes(int count)Generates an array of random bytes.doublerandomDouble()Generates a random double between 0 (inclusive) and Double.MAX_VALUE (exclusive).doublerandomDouble(double startInclusive, double endExclusive)Generates a random double within the specified range.floatrandomFloat()Generates a random float between 0 (inclusive) and Float.MAX_VALUE (exclusive).floatrandomFloat(float startInclusive, float endExclusive)Generates a random float within the specified range.intrandomInt()Generates a random int between 0 (inclusive) and Integer.MAX_VALUE (exclusive).intrandomInt(int startInclusive, int endExclusive)Generates a random integer within the specified range.longrandomLong()Generates a random long between 0 (inclusive) and Long.MAX_VALUE (exclusive).longrandomLong(long startInclusive, long endExclusive)Generates a random long within the specified range.static RandomUtilssecure()Gets the singleton instance based onSecureRandom.getInstanceStrong()which uses an algorithms/providers specified in thesecurerandom.strongAlgorithmsSecurityproperty.java.lang.StringtoString()
-
-
-
Constructor Detail
-
RandomUtils
@Deprecated public RandomUtils()
Deprecated.TODO Make private in 4.0.RandomUtilsinstances should NOT be constructed in standard programming. Instead, the class should be used asRandomUtils.nextBytes(5);.This constructor is public to permit tools that require a JavaBean instance to operate.
-
-
Method Detail
-
nextBoolean
public static boolean nextBoolean()
Generates a random boolean value.- Returns:
- the random boolean
- Since:
- 3.5
-
nextBytes
public static byte[] nextBytes(int count)
Generates an array of random bytes.- Parameters:
count- the size of the returned array- Returns:
- the random byte array
- Throws:
java.lang.IllegalArgumentException- ifcountis negative
-
nextDouble
public static double nextDouble()
Generates a random double between 0 (inclusive) and Double.MAX_VALUE (exclusive).- Returns:
- the random double
- Since:
- 3.5
- See Also:
nextDouble(double, double)
-
nextDouble
public static double nextDouble(double startInclusive, double endExclusive)Generates a random double within the specified range.- Parameters:
startInclusive- the smallest value that can be returned, must be non-negativeendExclusive- the upper bound (not included)- Returns:
- the random double
- Throws:
java.lang.IllegalArgumentException- ifstartInclusive > endExclusiveor ifstartInclusiveis negative
-
nextFloat
public static float nextFloat()
Generates a random float between 0 (inclusive) and Float.MAX_VALUE (exclusive).- Returns:
- the random float
- Since:
- 3.5
- See Also:
nextFloat(float, float)
-
nextFloat
public static float nextFloat(float startInclusive, float endExclusive)Generates a random float within the specified range.- Parameters:
startInclusive- the smallest value that can be returned, must be non-negativeendExclusive- the upper bound (not included)- Returns:
- the random float
- Throws:
java.lang.IllegalArgumentException- ifstartInclusive > endExclusiveor ifstartInclusiveis negative
-
nextInt
public static int nextInt()
Generates a random int between 0 (inclusive) and Integer.MAX_VALUE (exclusive).- Returns:
- the random integer
- Since:
- 3.5
- See Also:
nextInt(int, int)
-
nextInt
public static int nextInt(int startInclusive, int endExclusive)Generates a random integer within the specified range.- Parameters:
startInclusive- the smallest value that can be returned, must be non-negativeendExclusive- the upper bound (not included)- Returns:
- the random integer
- Throws:
java.lang.IllegalArgumentException- ifstartInclusive > endExclusiveor ifstartInclusiveis negative
-
nextLong
public static long nextLong()
Generates a random long between 0 (inclusive) and Long.MAX_VALUE (exclusive).- Returns:
- the random long
- Since:
- 3.5
- See Also:
nextLong(long, long)
-
nextLong
public static long nextLong(long startInclusive, long endExclusive)Generates a random long within the specified range.- Parameters:
startInclusive- the smallest value that can be returned, must be non-negativeendExclusive- the upper bound (not included)- Returns:
- the random long
- Throws:
java.lang.IllegalArgumentException- ifstartInclusive > endExclusiveor ifstartInclusiveis negative
-
secure
public static RandomUtils secure()
Gets the singleton instance based onSecureRandom.getInstanceStrong()which uses an algorithms/providers specified in thesecurerandom.strongAlgorithmsSecurityproperty.The method
SecureRandom.getInstanceStrong()is called on-demand.- Returns:
- the singleton instance based on
SecureRandom.getInstanceStrong(). - Since:
- 3.16.0
- See Also:
SecureRandom.getInstanceStrong()
-
randomBoolean
public boolean randomBoolean()
Generates a random boolean value.- Returns:
- the random boolean
- Since:
- 3.16.0
-
randomBytes
public byte[] randomBytes(int count)
Generates an array of random bytes.- Parameters:
count- the size of the returned array- Returns:
- the random byte array
- Throws:
java.lang.IllegalArgumentException- ifcountis negative- Since:
- 3.16.0
-
randomDouble
public double randomDouble()
Generates a random double between 0 (inclusive) and Double.MAX_VALUE (exclusive).- Returns:
- the random double
- Since:
- 3.16.0
- See Also:
nextDouble(double, double)
-
randomDouble
public double randomDouble(double startInclusive, double endExclusive)Generates a random double within the specified range.- Parameters:
startInclusive- the smallest value that can be returned, must be non-negativeendExclusive- the upper bound (not included)- Returns:
- the random double
- Throws:
java.lang.IllegalArgumentException- ifstartInclusive > endExclusiveor ifstartInclusiveis negative- Since:
- 3.16.0
-
randomFloat
public float randomFloat()
Generates a random float between 0 (inclusive) and Float.MAX_VALUE (exclusive).- Returns:
- the random float
- Since:
- 3.16.0
- See Also:
nextFloat(float, float)
-
randomFloat
public float randomFloat(float startInclusive, float endExclusive)Generates a random float within the specified range.- Parameters:
startInclusive- the smallest value that can be returned, must be non-negativeendExclusive- the upper bound (not included)- Returns:
- the random float
- Throws:
java.lang.IllegalArgumentException- ifstartInclusive > endExclusiveor ifstartInclusiveis negative
-
randomInt
public int randomInt()
Generates a random int between 0 (inclusive) and Integer.MAX_VALUE (exclusive).- Returns:
- the random integer
- Since:
- 3.16.0
- See Also:
nextInt(int, int)
-
randomInt
public int randomInt(int startInclusive, int endExclusive)Generates a random integer within the specified range.- Parameters:
startInclusive- the smallest value that can be returned, must be non-negativeendExclusive- the upper bound (not included)- Returns:
- the random integer
- Throws:
java.lang.IllegalArgumentException- ifstartInclusive > endExclusiveor ifstartInclusiveis negative- Since:
- 3.16.0
-
randomLong
public long randomLong()
Generates a random long between 0 (inclusive) and Long.MAX_VALUE (exclusive).- Returns:
- the random long
- Since:
- 3.16.0
- See Also:
nextLong(long, long)
-
randomLong
public long randomLong(long startInclusive, long endExclusive)Generates a random long within the specified range.- Parameters:
startInclusive- the smallest value that can be returned, must be non-negativeendExclusive- the upper bound (not included)- Returns:
- the random long
- Throws:
java.lang.IllegalArgumentException- ifstartInclusive > endExclusiveor ifstartInclusiveis negative- Since:
- 3.16.0
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-