HashMap Clase

Definición

Implementación basada en tablas hash de la Map interfaz.

[Android.Runtime.Register("java/util/HashMap", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class HashMap : Java.Util.AbstractMap, IDisposable, Java.IO.ISerializable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/util/HashMap", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type HashMap = class
    inherit AbstractMap
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface IMap
Herencia
Derivado
Atributos
Implementaciones

Comentarios

Implementación basada en tablas hash de la Map interfaz. Esta implementación proporciona todas las operaciones de asignación opcionales y permite null valores y la null clave. (La HashMap clase es aproximadamente equivalente a Hashtable, excepto que no está sincronizada y permite valores NULL). Esta clase no garantiza el orden del mapa; en concreto, no garantiza que el orden permanezca constante con el tiempo.

Esta implementación proporciona un rendimiento en tiempo constante para las operaciones básicas (get y put), suponiendo que la función hash disperse los elementos correctamente entre los cubos. La iteración en las vistas de colección requiere tiempo proporcional a la "capacidad" de la HashMap instancia (el número de cubos) más su tamaño (el número de asignaciones de clave-valor). Por lo tanto, es muy importante no establecer la capacidad inicial demasiado alta (o el factor de carga demasiado bajo) si el rendimiento de iteración es importante.

Una instancia de HashMap 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. El factor de carga es una medida de cómo se permite completar la tabla hash antes de aumentar automáticamente su capacidad. Cuando el número de entradas de la tabla hash supera el producto del factor de carga y la capacidad actual, la tabla hash se vuelve a guardar (es decir, se vuelven a generar estructuras de datos internas) para que la tabla hash tenga aproximadamente el doble del número de cubos.

Como regla 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 búsqueda (reflejado en la mayoría de las operaciones de la HashMap clase, incluidos get y put). Se debe tener en cuenta el número esperado de entradas en el mapa y su factor de carga al establecer su capacidad inicial, para minimizar el número de operaciones de rehash. Si la capacidad inicial es mayor que el número máximo de entradas divididas por el factor de carga, nunca se producirán operaciones de rehash.

Si se van a almacenar muchas asignaciones en una HashMap instancia, crearla con una capacidad suficientemente grande permitirá que las asignaciones se almacenen de forma más eficaz que permitir que realicen el rehash automático según sea necesario para aumentar la tabla. Tenga en cuenta que el uso de muchas claves con el mismo hashCode() es una manera segura de ralentizar el rendimiento de cualquier tabla hash. Para mejorar el impacto, cuando las claves son Comparable, esta clase puede usar el orden de comparación entre las claves para ayudar a romper los vínculos.

<fuerte>Tenga en cuenta que esta implementación no está sincronizada.</strong> Si varios subprocesos acceden simultáneamente a un mapa hash y al menos uno de los subprocesos modifica el mapa estructuralmente, debe sincronizarse externamente. (Una modificación estructural es cualquier operación que agrega o elimina una o varias asignaciones; simplemente cambia el valor asociado a una clave que una instancia ya contiene no es una modificación estructural). Esto se logra normalmente mediante la sincronización en algún objeto que encapsula naturalmente el mapa.

Si no existe este objeto, el mapa debe "encapsularse" mediante el Collections#synchronizedMap Collections.synchronizedMap método . Esto se hace mejor en el momento de la creación, para evitar el acceso no asincrónico accidental al mapa:

Map m = Collections.synchronizedMap(new HashMap(...));

Los iteradores devueltos por todos los "métodos de vista de colección" de esta clase no son rápidos: si el mapa 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 producirá 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.

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.

Esta clase es miembro del marco de colecciones de Java.

Agregado en la versión 1.2.

Java documentación para java.util.HashMap.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Constructores

Nombre Description
HashMap()

Construye un vacío HashMap con la capacidad inicial predeterminada (16) y el factor de carga predeterminado (0).

HashMap(IDictionary)

Construye un nuevo HashMap con las mismas asignaciones que el especificado Map.

HashMap(Int32, Single)

Construye un vacío HashMap con la capacidad inicial y el factor de carga especificados.

HashMap(Int32)

Construye un vacío HashMap con la capacidad inicial especificada y el factor de carga predeterminado (0).

HashMap(IntPtr, JniHandleOwnership)

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

Propiedades

Nombre Description
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

Por agregar

(Heredado de AbstractMap)
JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
JniPeerMembers

Implementación basada en tablas hash de la Map interfaz.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(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

Nombre Description
Clear()

Por agregar

(Heredado de AbstractMap)
Clone()

Devuelve una copia superficial de esta HashMap instancia: las claves y los propios valores no se clonan.

Compute(Object, IBiFunction)

Implementación basada en tablas hash de la Map interfaz.

ComputeIfAbsent(Object, IFunction)

Implementación basada en tablas hash de la Map interfaz.

ComputeIfPresent(Object, IBiFunction)

Implementación basada en tablas hash de la Map interfaz.

Construct(JniObjectReference, JniObjectReferenceOptions)

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
ContainsKey(Object)

Por agregar

(Heredado de AbstractMap)
ContainsValue(Object)

Por agregar

(Heredado de AbstractMap)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
EntrySet()

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

Equals(Object)

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
Equals(Object)

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

(Heredado de Object)
ForEach(IBiConsumer)

Implementación basada en tablas hash de la Map interfaz.

Get(Object)

Por agregar

(Heredado de AbstractMap)
GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
GetOrDefault(Object, Object)

Implementación basada en tablas hash de la Map interfaz.

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)
KeySet()

Por agregar

(Heredado de AbstractMap)
Merge(Object, Object, IBiFunction)

Implementación basada en tablas hash de la Map interfaz.

NewHashMap(Int32)

Implementación basada en tablas hash de la Map interfaz.

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)

Por agregar

(Heredado de AbstractMap)
PutAll(IDictionary)

Por agregar

(Heredado de AbstractMap)
PutIfAbsent(Object, Object)

Implementación basada en tablas hash de la Map interfaz.

Remove(Object, Object)

Quita la asignación de la clave especificada de este mapa si está presente.

Remove(Object)

Por agregar

(Heredado de AbstractMap)
Replace(Object, Object, Object)

Implementación basada en tablas hash de la Map interfaz.

Replace(Object, Object)

Implementación basada en tablas hash de la Map interfaz.

ReplaceAll(IBiFunction)

Implementación basada en tablas hash de la Map interfaz.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
Size()

Por agregar

(Heredado de AbstractMap)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Values()

Por agregar

(Heredado de AbstractMap)
Wait()

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

(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)
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)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Implementación basada en tablas hash de la Map interfaz.

(Heredado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Implementación basada en tablas hash de la Map interfaz.

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Implementación basada en tablas hash de la Map interfaz.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a