Hashtable Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 , Hashtable
crearla 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 |
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 |
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 |
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 |
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 |
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 |
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. |