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 nonnull può essere usato come chiave o come valore.

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

Un'istanza di Hashtable ha due parametri che influiscono sulle prestazioni: capacità iniziale e fattore di 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 cercate in sequenza. Il fattore di carico è una misura della modalità di recupero della tabella hash completa prima dell'aumento automatico della capacità. I parametri iniziali della capacità e del fattore di carico sono solo suggerimenti per l'implementazione. I dettagli esatti relativi a 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 il tempo e i costi dello spazio. I valori più elevati riducono l'overhead dello spazio, ma aumentano il costo di tempo per cercare una voce (che si riflette nella maggior Hashtable parte 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 molto tempo. Non rehash si verificherà alcuna operazione se la capacità iniziale è maggiore del numero massimo di voci Hashtable che conterrà diviso per il fattore di carico. Tuttavia, l'impostazione della capacità iniziale troppo elevata può sprecare spazio.

Se molte voci devono essere inserite in un oggetto Hashtable, la creazione con una capacità sufficientemente grande può consentire l'inserimento delle voci in modo più efficiente rispetto a consentire l'esecuzione del rihashing automatico 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 raccolta" di questa classe sono <em>fail-fast</em>: se la tabella Hashtable viene modificata in qualsiasi momento dopo la creazione dell'iteratore, in qualsiasi modo tranne che tramite il proprio remove metodo dell'iteratore, l'iteratore genererà un'eccezione ConcurrentModificationException. Di conseguenza, in presenza di modifiche simultanee, l'iteratore ha esito negativo rapidamente e pulito, anziché rischiare un comportamento arbitrario 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 hashtable viene modificato strutturalmente in qualsiasi momento dopo la creazione dell'enumerazione, i risultati dell'enumerazione non sono #elements elements definiti.

Si noti che il comportamento rapido di errore di un iteratore non può essere garantito così com'è, in generale, impossibile rendere eventuali garanzie difficili in presenza di modifiche simultanee non sincronizzate. Gli iteratori veloci a errori generano ConcurrentModificationException un'operazione ottimale. Pertanto, sarebbe sbagliato scrivere un programma che dipende da questa eccezione per la correttezza: il comportamento 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 Map , rendendola un membro del

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 basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

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 per l'istanza di Android sottostante.

(Ereditato da Object)
IsEmpty

Verifica se questa tabella hash non esegue il mapping di chiavi a 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 eseguono il mapping del 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 la 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 su un oggetto quando Garbage Collection determina che non sono presenti altri 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 monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

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

(Ereditato da Object)
Put(Object, Object)

Esegue il mapping dell'oggetto specificato key all'oggetto specificato value 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 riorganizza internamente questa tabella hash, in modo da supportare e accedere alle relative voci in modo più efficiente.

Remove(Object)

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

Remove(Object, Object)

Rimuove la chiave (e il 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 di 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()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< 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)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< 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 del tipo di tipo controllato 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