Compartir a través de


Hashtable Clase

Definición

Esta clase implementa una tabla hash, que asigna claves a valores.

[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
Herencia
Atributos
Implementaciones

Comentarios

Esta clase implementa una tabla hash, que asigna claves a valores. Cualquier objeto que nonull sea se puede usar como clave o como valor.

Para almacenar y recuperar correctamente objetos de una tabla hash, los objetos usados como claves deben implementar el hashCode método y el equals método .

Una instancia de Hashtable tiene dos parámetros que afectan a su rendimiento: capacidad inicial y factor de carga. La capacidad es el número de cubos de la tabla hash y la capacidad inicial es simplemente la capacidad en el momento en que se crea la tabla hash. Tenga en cuenta que la tabla hash está abierta: en el caso de una "colisión de hash", un único cubo almacena varias entradas, que se deben buscar secuencialmente. El factor de carga es una medida de cómo se permite completar la tabla hash antes de aumentar automáticamente su capacidad. La capacidad inicial y los parámetros del factor de carga son simplemente sugerencias para la implementación. Los detalles exactos sobre cuándo y si se invoca el método rehash dependen de la implementación.

Por lo general, el factor de carga predeterminado (.75) ofrece un buen equilibrio entre los costos de tiempo y espacio. Los valores más altos reducen la sobrecarga de espacio, pero aumentan el costo de tiempo para buscar una entrada (que se refleja en la mayoría Hashtable de las operaciones, incluidos get y put).

La capacidad inicial controla un equilibrio entre el espacio desperdiciado y la necesidad de rehash operaciones, que consumen mucho tiempo. No rehash se producirá ningunaoperación si la capacidad inicial es mayor que el número máximo de entradas que Hashtable contendrá dividido por su factor de carga. Sin embargo, establecer la capacidad inicial demasiado alta puede desperdiciar espacio.

Si se van a realizar muchas entradas en , Hashtablecrearla con una capacidad suficientemente grande puede permitir que las entradas se inserte de forma más eficaz que permitir que realicen el rehash automático según sea necesario para aumentar la tabla.

En este ejemplo se crea una tabla hash de números. Usa los nombres de los números como claves:

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

Para recuperar un número, use el código siguiente:

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

Los iteradores devueltos por el iterator método de las colecciones devueltas por todos los "métodos de vista de colección" de esta clase son <em>fail-fast</em>: si la tabla Hashtable se modifica estructuralmente en cualquier momento después de crear el iterador, excepto a través del método propio remove del iterador, el iterador iniciará un ConcurrentModificationException. Por lo tanto, en el caso de la modificación simultánea, el iterador produce un error rápido y limpio, en lugar de arriesgarse a un comportamiento arbitrario y no determinista en un momento indeterminado en el futuro. Las enumeraciones devueltas por los métodos y #elements elements hashtable #keys keys son <em>not</em> fail-fast; si la tabla Hash se modifica estructuralmente en cualquier momento después de crear la enumeración, los resultados de la enumeración no están definidos.

Tenga en cuenta que no se puede garantizar el comportamiento rápido de un iterador, ya que es, por lo general, imposible hacer ninguna garantía dura en presencia de modificaciones simultáneas no asincrónicas. Los iteradores rápidos de error inician ConcurrentModificationException el mejor esfuerzo. Por lo tanto, sería incorrecto escribir un programa que dependiera de esta excepción por su corrección: el comportamiento rápido del error de los iteradores solo se debe usar para detectar errores.

A partir de la plataforma Java 2 v1.2, esta clase se ha retroajustado para implementar la Map interfaz, lo que lo convierte en miembro del

Java Collections Framework. A diferencia de las nuevas implementaciones de colección, Hashtable se sincroniza. Si no se necesita una implementación segura para subprocesos, se recomienda usar HashMap en lugar de Hashtable. Si se desea una implementación altamente simultánea segura para subprocesos, se recomienda usar java.util.concurrent.ConcurrentHashMap en lugar de Hashtable.

Agregado en la versión 1.0.

Documentación de Java para java.util.Hashtable.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Constructores

Hashtable()

Construye una tabla hash nueva y vacía con una capacidad inicial predeterminada (11) y un factor de carga (0).

Hashtable(IDictionary)

Construye una nueva tabla hash con las mismas asignaciones que el mapa especificado.

Hashtable(Int32)

Construye una tabla hash nueva y vacía con la capacidad inicial especificada y el factor de carga predeterminado (0).

Hashtable(Int32, Single)

Construye una tabla hash nueva y vacía con la capacidad inicial especificada y el factor de carga especificado.

Hashtable(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
IsEmpty

Comprueba si esta tabla hash no asigna claves a los valores.

JniIdentityHashCode

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
JniPeerMembers

Esta clase implementa una tabla hash, que asigna claves a valores.

PeerReference

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

Clear()

Borra esta tabla hash para que no contenga claves.

Clone()

Crea una copia superficial de esta tabla hash.

Compute(Object, IBiFunction)

Para agregar

ComputeIfAbsent(Object, IFunction)

Para agregar

ComputeIfPresent(Object, IBiFunction)

Para agregar

Contains(Object)

Comprueba si algunas claves se asignan al valor especificado en esta tabla hash.

ContainsKey(Object)

Comprueba si el objeto especificado es una clave de esta tabla hash.

ContainsValue(Object)

Devuelve true si esta tabla hash asigna una o varias claves a este valor.

Dispose()

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
Dispose(Boolean)

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
Elements()

Devuelve una enumeración de los valores de esta tabla hash.

EntrySet()

Devuelve una Set vista de las asignaciones contenidas en este mapa.

Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
ForEach(IBiConsumer)

Esta clase implementa una tabla hash, que asigna claves a valores.

Get(Object)

Devuelve el valor al que se asigna la clave especificada o null si este mapa no contiene ninguna asignación para la clave.

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
GetOrDefault(Object, Object)

Esta clase implementa una tabla hash, que asigna claves a valores.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Keys()

Devuelve una enumeración de las claves de esta tabla hash.

KeySet()

Devuelve una Set vista de las claves contenidas en este mapa.

Merge(Object, Object, IBiFunction)

Para agregar

Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Put(Object, Object)

Asigna el objeto especificado key al especificado value en esta tabla hash.

PutAll(IDictionary)

Copia todas las asignaciones del mapa especificado a esta tabla hash.

PutIfAbsent(Object, Object)

Esta clase implementa una tabla hash, que asigna claves a valores.

Rehash()

Aumenta la capacidad de y reorganiza internamente esta tabla hash, con el fin de acomodar y acceder a sus entradas de forma más eficaz.

Remove(Object)

Quita la clave (y su valor correspondiente) de esta tabla hash.

Remove(Object, Object)

Quita la clave (y su valor correspondiente) de esta tabla hash.

Replace(Object, Object)

Esta clase implementa una tabla hash, que asigna claves a valores.

Replace(Object, Object, Object)

Esta clase implementa una tabla hash, que asigna claves a valores.

ReplaceAll(IBiFunction)

Esta clase implementa una tabla hash, que asigna claves a valores.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
Size()

Devuelve el número de claves de esta tabla hash.

ToArray<T>()

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
Values()

Devuelve una Collection vista de los valores contenidos en este mapa.

Wait()

Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
IJavaPeerable.Finalized()

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Esta clase implementa una tabla hash, que asigna claves a valores.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Esta clase implementa una tabla hash, que asigna claves a valores.

GetJniTypeName(IJavaPeerable)

Esta clase implementa una tabla hash, que asigna claves a valores.

Se aplica a