Random 类

定义

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

[Android.Runtime.Register("java/util/Random", DoNotGenerateAcw=true)]
public class Random : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[Android.Runtime.Register("java/util/Random", DoNotGenerateAcw=true)]
public class Random : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Util.RandomGenerators.IRandomGenerator
[<Android.Runtime.Register("java/util/Random", DoNotGenerateAcw=true)>]
type Random = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
[<Android.Runtime.Register("java/util/Random", DoNotGenerateAcw=true)>]
type Random = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IRandomGenerator
继承
Random
派生
属性
实现

注解

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。 该类使用 48 位种子,该种子是使用线性同一公式修改的。 (请参阅唐纳德·Knuth, <引用>计算机编程艺术,第 2 卷,第三版:半数值算法</引用>,第 3.2.1 节。

如果使用同一种子创建两个实例,并且针对每个实例 Random 执行相同的方法调用序列,它们将生成并返回相同的数字序列。 为了保证此属性,为类 Random指定了特定的算法。 Java实现必须使用此处为类Random显示的所有算法,以便Java代码的绝对可移植性。 但是,只要它们遵守所有方法的一般协定,类的 Random 子类就可以使用其他算法。

Random 实现的算法使用 protected 实用工具方法,每个调用最多可以提供 32 个伪随机生成的位。

许多应用程序会发现该方法 Math#random 更易于使用。

java.util.Random线程安全实例。 但是,跨线程并发使用同一 java.util.Random 实例可能会遇到争用,因此性能不佳。 请考虑在 java.util.concurrent.ThreadLocalRandom 多线程设计中使用。

实例 java.util.Random 不是加密安全的。 请考虑改 java.security.SecureRandom 用加密保护伪随机数生成器,供安全敏感应用程序使用。

在 1.0 中添加。

Java文档java.util.Random

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

名称 说明
Random()

创建新的随机数生成器。

Random(Int64)

使用单个 long 种子创建新的随机数生成器。

Random(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

名称 说明
Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
JniPeerMembers

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

PeerReference

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

名称 说明
Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
Dispose(Boolean)

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
From(IRandomGenerator)

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Next(Int32)

生成下一个伪随机数。

NextBoolean()

返回此随机数生成器序列中的下一个伪随机分布 boolean 值。

NextBytes(Byte[])

生成随机字节并将其放入用户提供的字节数组中。

NextDouble()

返回下一个伪随机值,在此随机数生成器的序列之间double0.0从中统一分布1.0的值。

NextFloat()

返回下一个伪随机值,在此随机数生成器的序列之间float0.0从中统一分布1.0的值。

NextGaussian()

返回下一个伪随机数,高斯(“正常”)分布 double 值,其平均值 0.0 和标准偏差 1.0 与此随机数生成器的序列。

NextInt()

返回此随机数生成器序列中的下一个伪随机分布 int 值。

NextInt(Int32)

返回从此随机数生成器序列中绘制的伪随机值(非独占)与指定值(独占)之间的一个伪随机分布 int 值。

NextLong()

返回此随机数生成器序列中的下一个伪随机分布 long 值。

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
SetSeed(Int64)

使用单个 long 种子设置此随机数生成器的种子。

ToArray<T>()

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

名称 说明
IJavaPeerable.Disposed()

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
IJavaPeerable.Finalized()

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

(继承自 Object)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

此类的实例用于生成伪随机数流;它的时间段只有 2<个 sup>48</sup>。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于