共用方式為


Hashtable 類別

定義

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

[Android.Runtime.Register("java/util/Hashtable", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class Hashtable : Java.Util.Dictionary, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IMap
[<Android.Runtime.Register("java/util/Hashtable", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type Hashtable = class
    inherit Dictionary
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface IMap
繼承
屬性
實作

備註

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。 任何非null 物件都可以當做索引鍵或值使用。

若要成功從哈希表儲存和擷取物件,用作索引鍵的對象必須實 hashCode 作 方法和 equals 方法。

Hashtable 實例有兩個會影響其效能的參數: 初始容量負載因數。 容量是哈希表中的貯體數目,而初始容量只是建立哈希表時的容量。 請注意,哈希表已 開啟:在「哈希衝突」的情況下,單一貯體會儲存多個專案,必須循序搜尋。 負載因數是一種測量哈希表在容量自動增加之前,允許取得哈希表的完整程度。 初始容量和負載因數參數只是實作的提示。 叫用 rehash 方法的確切詳細數據是否與實作相關。

一般而言,預設負載因數 (.75) 在時間和空間成本之間提供了良好的取捨。 較高的值會降低空間額外負荷,但會增加查閱項目的時間成本(這反映在大多數 Hashtable 作業中,包括 getput)。

初始容量可控制浪費空間與作業需求 rehash 之間的取捨,這是耗時的。 如果初始容量大於 將包含的項目數目上限除以其負載因數,則不會rehash發生任何作業Hashtable 不過,設定初始容量太高可能會浪費空間。

如果要將許多專案放入 Hashtable,建立具有足夠龐大容量的專案,可能會讓專案更有效率地插入,而不需要視需要執行自動重新套用以增加數據表。

此範例會建立數位的哈希表。 它會使用數字的名稱作為索引鍵:

{@code
              Hashtable<String, Integer> numbers
                = new Hashtable<String, Integer>();
              numbers.put("one", 1);
              numbers.put("two", 2);
              numbers.put("three", 3);}

若要擷取數位,請使用下列程式代碼:

{@code
              Integer n = numbers.get("two");
              if (n != null) {
                System.out.println("two = " + n);
              }}

由這個類別之所有「集合檢視方法」所傳回之集合方法所傳回 iterator 的反覆運算器是 <em>fail-fast</em>:如果在建立反覆運算器之後隨時以結構化方式修改 Hashtable, remove 則反覆運算器會擲回 ConcurrentModificationException。 因此,面對並行修改,反覆運算器會快速且乾淨地失敗,而不是在未來不確定的時間冒著任意、不具決定性的行為的風險。 Hashtable 的 #keys keys#elements elements 方法><所傳回的列舉不是</em> 失敗快速;如果在建立列舉之後隨時以結構化方式修改 Hashtable,則列舉的結果會未定義。

請注意,Iterator 的失敗快速行為無法保證,一般來說,不可能在未同步處理並行修改的情況下進行任何硬式保證。 快速反覆運算器會盡最大努力擲回 ConcurrentModificationException 。 因此,撰寫依賴此例外狀況的程序正確性是錯誤的: Iterator 的失敗快速行為應該只用來偵測 Bug。

從 Java 2 平臺 v1.2 開始,此類別已進行改造以實 Map 作 介面,使其成為 的成員。

Java Collections Framework。 與新的集合實作不同, Hashtable 會同步處理。 如果不需要安全線程實作,建議使用 HashMap 來取代 Hashtable。 如果需要安全線程高度並行實作,建議使用 java.util.concurrent.ConcurrentHashMap 來取代 Hashtable

已在1.0中新增。

java.util.HashtableJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

Hashtable()

建構具有預設初始容量 (11) 和負載因數 (0) 的新空白哈希表。

Hashtable(IDictionary)

使用與指定對應相同的對應來建構新的哈希表。

Hashtable(Int32)

使用指定的初始容量和預設負載因數 (0) 建構新的空白哈希表。

Hashtable(Int32, Single)

使用指定的初始容量和指定的負載因數,建構新的空白哈希表。

Hashtable(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

屬性

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
Handle

基礎Android實例的句柄。

(繼承來源 Object)
IsEmpty

測試此哈希表是否會將索引鍵對應至值。

JniIdentityHashCode

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
JniPeerMembers

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

PeerReference

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
ThresholdClass

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

方法

Clear()

清除此哈希表,使其不包含任何索引鍵。

Clone()

建立這個哈希表的淺層複本。

Compute(Object, IBiFunction)

要新增

ComputeIfAbsent(Object, IFunction)

要新增

ComputeIfPresent(Object, IBiFunction)

要新增

Contains(Object)

測試某些索引鍵是否對應到這個哈希表中的指定值。

ContainsKey(Object)

測試指定的物件是否為此哈希表中的索引鍵。

ContainsValue(Object)

如果這個哈希表將一或多個索引鍵對應至這個值,則傳回 true。

Dispose()

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
Dispose(Boolean)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
Elements()

傳回這個哈希表中值的列舉。

EntrySet()

Set 回這個對應中包含的對應檢視。

Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
ForEach(IBiConsumer)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

Get(Object)

傳回所指定索引鍵對應的值,如果 null 這個對應未包含索引鍵的對應,則傳回值。

GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
GetOrDefault(Object, Object)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

JavaFinalize()

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。

(繼承來源 Object)
Keys()

傳回這個哈希表中索引鍵的列舉。

KeySet()

Set 回這個對應中包含的索引鍵檢視。

Merge(Object, Object, IBiFunction)

要新增

Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
Put(Object, Object)

指定指定的 key 對應到這個哈希表中指定的 value

PutAll(IDictionary)

將所有對應從指定的對應複製到這個哈希表。

PutIfAbsent(Object, Object)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

Rehash()

增加和內部重新組織此哈希表的容量,以便更有效率地容納及存取其專案。

Remove(Object)

從這個哈希表移除索引鍵(及其對應的值)。

Remove(Object, Object)

從這個哈希表移除索引鍵(及其對應的值)。

Replace(Object, Object)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

Replace(Object, Object, Object)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

ReplaceAll(IBiFunction)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
Size()

傳回這個哈希表中的索引鍵數目。

ToArray<T>()

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
Values()

Collection 回這個對應中包含的值檢視。

Wait()

讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<>

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)

明確介面實作

IJavaPeerable.Disposed()

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
IJavaPeerable.Finalized()

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

(繼承來源 Object)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

GetJniTypeName(IJavaPeerable)

這個類別會實作哈希表,此哈希表會將索引鍵對應至值。

適用於