Condividi tramite


Hashtable Classe

Definizione

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

[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
Ereditarietà
Attributi
Implementazioni

Commenti

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori. Qualsiasi oggetto non puònull essere usato come chiave o come valore.

Per archiviare e recuperare gli oggetti da una tabella hash, gli oggetti usati come chiavi devono implementare il metodo e il hashCodeequals metodo.

Un'istanza di ha due parametri che influiscono sulle prestazioni: capacità iniziale e fattore diHashtable carico. La capacità è il numero di bucket nella tabella hash e la capacità iniziale è semplicemente la capacità al momento della creazione della tabella hash. Si noti che la tabella hash è aperta: nel caso di una "collisione hash", un singolo bucket archivia più voci, che devono essere ricercate in sequenza. Il fattore di carico è una misura della modalità di aumento automatico della tabella hash della tabella hash. I parametri iniziali della capacità e del fattore di carico sono solo hint per l'implementazione. I dettagli esatti da quando e se il metodo rehash viene richiamato sono dipendenti dall'implementazione.

In genere, il fattore di carico predefinito (.75) offre un buon compromesso tra i costi di tempo e spazio. I valori più elevati riducono il sovraccarico dello spazio, ma aumentano i costi di tempo per cercare una voce (che si riflette nella maggior parte Hashtable delle operazioni, tra cui get e put).

La capacità iniziale controlla un compromesso tra lo spazio sprecato e la necessità di rehash operazioni, che richiedono tempo. Nessuna rehash operazione si verificherà mai se la capacità iniziale è maggiore del numero massimo di voci che Hashtable conterrà diviso per il fattore di carico. Tuttavia, l'impostazione della capacità iniziale troppo elevata può sprecare spazio.

Se molte voci devono essere effettuate in un Hashtableoggetto , la creazione con una capacità sufficientemente grande può consentire l'inserimento delle voci in modo più efficiente rispetto a consentire l'esecuzione automatica della rihashing in base alle esigenze per aumentare la tabella.

In questo esempio viene creata una tabella hash di numeri. Usa i nomi dei numeri come chiavi:

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

Per recuperare un numero, usare il codice seguente:

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

Gli iteratori restituiti dal metodo delle raccolte restituiti da iterator tutti i metodi di visualizzazione della classe sono <em>fail-fast</em>: se la tabella Hashtable viene modificata in modo strutturale in qualsiasi momento dopo la creazione dell'iteratore remove , in qualsiasi modo tranne tramite il proprio metodo iteratore, l'iteratore genererà un ConcurrentModificationExceptionoggetto . Pertanto, a fronte di modifiche simultanee, l'iteratore ha esito negativo rapidamente e pulito, anziché rischiare un comportamento arbitrario e non deterministico in un momento indeterminato in futuro. Le enumerazioni restituite dai metodi e di #keys keys Hashtable sono <em>not</em> fail-fast. Se la tabella Hashtable viene modificata in modo strutturale in qualsiasi momento dopo la creazione dell'enumerazione, i risultati dell'enumerazione non sono #elements elements definiti.

Si noti che il comportamento non riuscito di un iteratore non può essere garantito perché è, in genere, impossibile rendere eventuali garanzie difficili in presenza di modifiche simultanee non sincronizzate. Gli iteratori veloci non riescono generano ConcurrentModificationException un'attività ottimale. Pertanto, sarebbe sbagliato scrivere un programma che dipende da questa eccezione per la sua correttezza: il comportamento non rapido degli iteratori deve essere usato solo per rilevare i bug.

A partire dalla piattaforma Java 2 v1.2, questa classe è stata adattata per implementare l'interfaccia, rendendola membro dell'oggetto Map

Java Collections Framework. A differenza delle nuove implementazioni della raccolta, Hashtable viene sincronizzata. Se non è necessaria un'implementazione thread-safe, è consigliabile usare HashMap al posto di Hashtable. Se si desidera un'implementazione altamente simultanea thread-safe, è consigliabile usare java.util.concurrent.ConcurrentHashMap al posto di Hashtable.

Aggiunta nella versione 1.0.

Documentazione Java per java.util.Hashtable.

Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .

Costruttori

Hashtable()

Costruisce una nuova tabella hash vuota con una capacità iniziale predefinita (11) e un fattore di carico (0).

Hashtable(IDictionary)

Costruisce una nuova tabella hash con gli stessi mapping della mappa specificata.

Hashtable(Int32)

Costruisce una nuova tabella hash vuota con la capacità iniziale specificata e il fattore di carico predefinito (0).

Hashtable(Int32, Single)

Costruisce una nuova tabella hash vuota con la capacità iniziale specificata e il fattore di carico specificato.

Hashtable(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle all'istanza di Android sottostante.

(Ereditato da Object)
IsEmpty

Verifica se questa tabella hash non esegue il mapping di chiavi ai valori.

JniIdentityHashCode

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
JniPeerMembers

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

PeerReference

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

Metodi

Clear()

Cancella questa tabella hash in modo che non contenga chiavi.

Clone()

Crea una copia superficiale di questa tabella hash.

Compute(Object, IBiFunction)

Da aggiungere

ComputeIfAbsent(Object, IFunction)

Da aggiungere

ComputeIfPresent(Object, IBiFunction)

Da aggiungere

Contains(Object)

Verifica se alcune chiavi vengono mappate al valore specificato in questa tabella hash.

ContainsKey(Object)

Verifica se l'oggetto specificato è una chiave in questa tabella hash.

ContainsValue(Object)

Restituisce true se questa tabella hash esegue il mapping di una o più chiavi a questo valore.

Dispose()

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
Dispose(Boolean)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
Elements()

Restituisce un'enumerazione dei valori in questa tabella hash.

EntrySet()

Restituisce una Set visualizzazione dei mapping contenuti in questa mappa.

Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
ForEach(IBiConsumer)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

Get(Object)

Restituisce il valore a cui viene eseguito il mapping della chiave specificata oppure null se questa mappa non contiene alcun mapping per la chiave.

GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
GetOrDefault(Object, Object)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

JavaFinalize()

Chiamato dal Garbage Collector in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto.

(Ereditato da Object)
Keys()

Restituisce un'enumerazione delle chiavi in questa tabella hash.

KeySet()

Restituisce una Set visualizzazione delle chiavi contenute in questa mappa.

Merge(Object, Object, IBiFunction)

Da aggiungere

Notify()

Riattiva un singolo thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
Put(Object, Object)

Esegue il mapping dell'oggetto specificato all'oggetto specificato keyvalue in questa tabella hash.

PutAll(IDictionary)

Copia tutti i mapping dalla mappa specificata a questa tabella hash.

PutIfAbsent(Object, Object)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

Rehash()

Aumenta la capacità di e internamente riorganizza questa tabella hash, in modo da supportare e accedere alle relative voci in modo più efficiente.

Remove(Object)

Rimuove la chiave (e il relativo valore corrispondente) da questa tabella hash.

Remove(Object, Object)

Rimuove la chiave (e il relativo valore corrispondente) da questa tabella hash.

Replace(Object, Object)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

Replace(Object, Object, Object)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

ReplaceAll(IBiFunction)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
Size()

Restituisce il numero di chiavi in questa tabella hash.

ToArray<T>()

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione in formato stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
Values()

Restituisce una Collection visualizzazione dei valori contenuti in questa mappa.

Wait()

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.<

(Ereditato da Object)
Wait(Int64)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
IJavaPeerable.Finalized()

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione dei tipi controllati dal runtime Android.

JavaCast<TResult>(IJavaObject)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

GetJniTypeName(IJavaPeerable)

Questa classe implementa una tabella hash, che esegue il mapping delle chiavi ai valori.

Si applica a