RandomGeneratorFactory 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。
[Android.Runtime.Register("java/util/random/RandomGeneratorFactory", ApiSince=35, DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T extends java.util.random.RandomGenerator" })]
public sealed class RandomGeneratorFactory : Java.Lang.Object
[<Android.Runtime.Register("java/util/random/RandomGeneratorFactory", ApiSince=35, DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T extends java.util.random.RandomGenerator" })>]
type RandomGeneratorFactory = class
inherit Object
- 繼承
- 屬性
備註
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。
RandomGeneratorFactory 同時提供選擇隨機數產生演算法的方法。
可以透過使用RandomGeneratorFactory該方法找到特定RandomGeneratorFactory#of(String),其中參數字串即為所需演算法名稱。 此方法RandomGeneratorFactory#all()產生一個非空StreamRandomGeneratorFactory RandomGeneratorFactorys的可用資料,可搜尋以找到適合該任務的選項RandomGeneratorFactory。
根據所需的初始種子類型,有三種建構隨機產生器實例的方法。
RandomGeneratorFactory#create(long) 用於長種子建構、 RandomGeneratorFactory#create(byte[]) 位元組[]種子建構,以及 RandomGeneratorFactory#create() 隨機種子建構。 舉例來說;
{@code
RandomGeneratorFactory<RandomGenerator> factory = RandomGeneratorFactory.of("Random");
for (int i = 0; i < 10; i++) {
new Thread(() -> {
RandomGenerator random = factory.create(100L);
System.out.println(random.nextDouble());
}).start();
}
}
RandomGeneratorFactory 也提供描述產生器屬性(或屬性)的方法,並可用於選擇隨機數產生演算法。 這些方法通常與 結合使用 RandomGeneratorFactory#all()。 在這個例子中,程式碼定位了產生狀態位元最多的 。RandomGeneratorFactoryRandomGenerator RandomGenerators
{@code
RandomGeneratorFactory<RandomGenerator> best = RandomGeneratorFactory.all()
.sorted(Comparator.comparingInt(RandomGenerator::stateBits).reversed())
.findFirst()
.orElse(RandomGeneratorFactory.of("Random"));
System.out.println(best.name() + " in " + best.group() + " was selected");
RandomGenerator rng = best.create();
System.out.println(rng.nextLong());
}
新增17。
Java 文件 java.util.random.RandomGeneratorFactory。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Class |
傳回這個 |
| Default |
回傳 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| IsArbitrarilyJumpable |
若隨機產生器能跳躍狀態週期中任意指定的遠端點,則回傳為真。 |
| IsDeprecated |
若 RandomGenerator(演算法)的實作已被標記為棄用,則回傳 true。 |
| IsHardware |
若隨機產生器使用硬體裝置(HRNG)產生熵輸入,則回傳真值。 |
| IsJumpable |
若隨機產生器能跳躍狀態週期中指定的遠端點,則回傳真。 |
| IsLeapable |
若隨機產生器可跳躍且能跳躍到狀態週期中非常遙遠的點,則返回真。 |
| IsSplittable |
若隨機產生器能被克隆到具有相同性質但位置較深的物件中,則回傳 true。 |
| IsStatistical |
若隨機產生器是用算術演算法計算且統計確定性,則回傳為真。 |
| IsStochastic |
若隨機產生器是使用外部或熵源作為輸入計算,則回傳為真。 |
| IsStreamable |
若能使用隨機產生器來產生 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| JniPeerMembers |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| Create() |
根據所選演算法建立一個 |
| Create(Byte[]) |
根據演算法建立一個 |
| Create(Int64) |
根據演算法建立一個 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| Equals(Object) |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
| Equidistribution() |
回傳演算法的等分布。 |
| GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
| Group() |
回傳隨機數產生器所用演算法的群組名稱。 |
| JavaFinalize() |
已淘汰.
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| Name() |
回傳隨機數產生器所使用的演算法名稱。 |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| Of(String) |
回傳 a |
| Period() |
回傳隨機數產生器所用演算法週期。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| StateBits() |
回傳演算法用來維持種子狀態的位元數。 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 (繼承來源 JavaObject) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
這是一個工廠類別,用於產生特定演算法的多個隨機數產生器。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |