Hashtable Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet.
[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
- Vererbung
- Attribute
- Implementiert
Hinweise
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. Jedes Nicht-Objektnull
kann als Schlüssel oder als Wert verwendet werden.
Um Objekte erfolgreich aus einer Hashtabelle zu speichern und abzurufen, müssen die als Schlüssel verwendeten Objekte die hashCode
Methode und die equals
Methode implementieren.
Eine Instanz von Hashtable
zwei Parametern, die sich auf die Leistung auswirken: anfängliche Kapazität und Auslastungsfaktor. Die Kapazität ist die Anzahl der Buckets in der Hashtabelle, und die anfängliche Kapazität ist einfach die Kapazität zum Zeitpunkt der Erstellung der Hashtabelle. Beachten Sie, dass die Hashtabelle geöffnet ist: Bei einer "Hashkonflikt" speichert ein einzelner Bucket mehrere Einträge, die sequenziell durchsucht werden müssen. Der Ladefaktor ist ein Maß dafür, wie voll die Hashtabelle abgerufen werden darf, bevor die Kapazität automatisch erhöht wird. Die Anfänglichen Kapazitäts- und Lastfaktorparameter sind lediglich Hinweise auf die Implementierung. Die genauen Details dazu, wann und ob die Rehash-Methode aufgerufen wird, sind implementierungsabhängig.
Im Allgemeinen bietet der Standardlastfaktor (.75) einen guten Kompromiss zwischen Zeit und Raumkosten. Höhere Werte verringern den Speicherplatzaufwand, erhöhen aber die Zeitkosten, um einen Eintrag nachzuschlagen (was in den meisten Vorgängen Hashtable
einschließlich get
und put
).
Die anfängliche Kapazität steuert einen Kompromiss zwischen verschwendetem Raum und der Notwendigkeit von rehash
Vorgängen, die zeitaufwändig sind. Es treten niemalsrehash
Vorgänge auf, wenn die Anfangskapazität größer als die maximale Anzahl von Einträgen ist, die Hashtable
durch den Lastfaktor dividiert werden. Das Festlegen der anfangs zu hohen Kapazität kann jedoch Platz verschwenden.
Wenn viele Einträge in einer Hashtable
Datei erstellt werden sollen, kann die Erstellung mit einer ausreichend großen Kapazität dazu führen, dass die Einträge effizienter eingefügt werden können, als dass sie bei Bedarf eine automatische Aktualisierung durchführen lassen, um die Tabelle zu vergrößern.
In diesem Beispiel wird eine Hashtabelle mit Zahlen erstellt. Sie verwendet die Namen der Zahlen als Schlüssel:
{@code
Hashtable<String, Integer> numbers
= new Hashtable<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);}
Verwenden Sie den folgenden Code, um eine Zahl abzurufen:
{@code
Integer n = numbers.get("two");
if (n != null) {
System.out.println("two = " + n);
}}
Die iteratoren, die von der Methode der Auflistungen zurückgegeben werden, die von allen "Sammlungsansichtsmethoden" dieser Klasse zurückgegeben werden, sind <>fail-fast</em>: Wenn die Hashtable nach dem iterator
Erstellen des Iterators strukturell geändert wird, außer über die eigene remove
Methode des Iterators, löst der Iterator eine .ConcurrentModificationException
Daher schlägt der Iterator angesichts der gleichzeitigen Änderung schnell und sauber fehl, anstatt willkürliches, nicht deterministisches Verhalten zu einem unbestimmten Zeitpunkt in der Zukunft zu riskieren. Die von Hashtables #keys keys
und #elements elements
Methoden zurückgegebenen Enumerationen sind <em>not</em> fail-fast. Wenn die Hashtable nach erstellung der Enumeration strukturell geändert wird, werden die Ergebnisse der Enumeration nicht definiert.
Beachten Sie, dass das fehlschnelle Verhalten eines Iterators nicht garantiert werden kann, da es im Allgemeinen unmöglich ist, im Vorhandensein einer nicht synchronisierten gleichzeitigen Änderung hart garantiert zu werden. Fail-fast iterators throw ConcurrentModificationException
on a best-effort. Daher wäre es falsch, ein Programm zu schreiben, das von dieser Ausnahme für seine Richtigkeit abhängig ist: Das fehlerschnelle Verhalten von Iteratoren sollte nur verwendet werden, um Fehler zu erkennen.
Ab der Java 2-Plattform v1.2 wurde diese Klasse umgerüstet, um die Map
Schnittstelle zu implementieren, wodurch sie mitglied der
Java Collections Framework. Im Gegensatz zu den neuen Sammlungsimplementierungen Hashtable
wird die Synchronisierung erfolgt. Wenn keine threadsichere Implementierung erforderlich ist, empfiehlt es sich, HashMap
anstelle von Hashtable
. Wenn eine threadsichere, hoch gleichzeitige Implementierung gewünscht wird, empfiehlt es sich java.util.concurrent.ConcurrentHashMap
, anstelle von Hashtable
.
In 1.0 hinzugefügt.
Java-Dokumentation für java.util.Hashtable
.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
Hashtable() |
Erstellt eine neue, leere Hashtabelle mit einer Standardkapazität (11) und einem Lastfaktor (0). |
Hashtable(IDictionary) |
Erstellt eine neue Hashtable mit den gleichen Zuordnungen wie die angegebene Karte. |
Hashtable(Int32) |
Erstellt eine neue, leere Hashtable mit der angegebenen Anfangskapazität und dem Standardlastfaktor (0). |
Hashtable(Int32, Single) |
Erstellt eine neue, leere Hashtabelle mit der angegebenen Anfangskapazität und dem angegebenen Ladefaktor. |
Hashtable(IntPtr, JniHandleOwnership) |
Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen. |
Eigenschaften
Class |
Gibt die Laufzeitklasse dieses Werts |
Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
IsEmpty |
Testet, ob diese Hashtabelle keine Schlüssel zu Werten zuordnet. |
JniIdentityHashCode |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
JniPeerMembers |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. |
PeerReference |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
ThresholdClass |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
ThresholdType |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
Methoden
Clear() |
Löscht diese Hashtabelle, sodass sie keine Schlüssel enthält. |
Clone() |
Erstellt eine flache Kopie dieser Hashtabelle. |
Compute(Object, IBiFunction) |
So wird's hinzugefügt |
ComputeIfAbsent(Object, IFunction) |
So wird's hinzugefügt |
ComputeIfPresent(Object, IBiFunction) |
So wird's hinzugefügt |
Contains(Object) |
Testet, ob einige Schlüssel dem angegebenen Wert in dieser Hashtabelle zugeordnet sind. |
ContainsKey(Object) |
Testet, ob das angegebene Objekt ein Schlüssel in dieser Hashtable ist. |
ContainsValue(Object) |
Gibt true zurück, wenn dieser Hashtable mindestens einen Schlüssel zu diesem Wert zuordnet. |
Dispose() |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
Dispose(Boolean) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
Elements() |
Gibt eine Aufzählung der Werte in dieser Hashtabelle zurück. |
EntrySet() |
Gibt eine |
Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
ForEach(IBiConsumer) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. |
Get(Object) |
Gibt den Wert zurück, dem der angegebene Schlüssel zugeordnet wird oder |
GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
GetOrDefault(Object, Object) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. |
JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
Keys() |
Gibt eine Aufzählung der Schlüssel in dieser Hashtable zurück. |
KeySet() |
Gibt eine |
Merge(Object, Object, IBiFunction) |
So wird's hinzugefügt |
Notify() |
Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet. (Geerbt von Object) |
NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
Put(Object, Object) |
Ordnet den angegebenen Wert |
PutAll(IDictionary) |
Kopiert alle Zuordnungen aus der angegebenen Zuordnung in diese Hashtabelle. |
PutIfAbsent(Object, Object) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. |
Rehash() |
Erhöht die Kapazität und intern neu organisiert diese Hashtable, um ihre Einträge effizienter aufzunehmen und darauf zuzugreifen. |
Remove(Object) |
Entfernt den Schlüssel (und den entsprechenden Wert) aus dieser Hashtabelle. |
Remove(Object, Object) |
Entfernt den Schlüssel (und den entsprechenden Wert) aus dieser Hashtabelle. |
Replace(Object, Object) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. |
Replace(Object, Object, Object) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. |
ReplaceAll(IBiFunction) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. |
SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
Size() |
Gibt die Anzahl der Schlüssel in dieser Hashtabelle zurück. |
ToArray<T>() |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
UnregisterFromRuntime() |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
Values() |
Gibt eine |
Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em> oder <em>unterbrochen</em>.<>< (Geerbt von Object) |
Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IJavaPeerable.Disposed() |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
IJavaPeerable.Finalized() |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
IJavaPeerable.JniManagedPeerState |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. (Geerbt von Object) |
Erweiterungsmethoden
JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
JavaCast<TResult>(IJavaObject) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. |
GetJniTypeName(IJavaPeerable) |
Diese Klasse implementiert eine Hashtabelle, die Schlüssel zu Werten zuordnet. |